openpyxl x和y轴刻度增量

2024-09-29 21:39:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建的条形图是自动缩放Y轴刻度增量,从0开始为0, .5, 1, 1.5等。我希望它只以整数递增,即0, 1, 2, 3, 4等。我尝试过chart.y_axis.tickLblSkip = 1,但我有疑问,因为我相信这只是标签本身,而不是实际的刻度线。有办法控制吗?我在文档中看到,您可以使用chart.y_axis.scaling.minmax控制轴的总体比例,但这不是我想要的。你知道吗

下面是用来生成我的图表的代码。下面是图表本身,您可以看到Y轴刻度,因为“唯一作业”仅为整数,所以使用小数看起来很愚蠢:

# Unique jobs chart
chart = BarChart()
chart.type = 'col'
chart.style = 13
chart.title = 'Unique Job Numbers Run'
chart.y_axis.title = 'Total Number of Parts'
chart.x_axis.title = 'Machine Number'
chart.legend = None
data = Reference(yearly_machine_totals_ws, min_col=4, min_row=1,
                 max_row=yearly_machine_totals_ws.max_row, max_col=4)
cats = Reference(yearly_machine_totals_ws, min_col=1, min_row=2,
                 max_row=yearly_machine_totals_ws.max_row)
chart.add_data(data, titles_from_data=True)
chart.set_categories(cats)
chart_ws.add_chart(chart, 'L2')

enter image description here


Tags: datawstitlechart图表col整数machine
1条回答
网友
1楼 · 发布于 2024-09-29 21:39:53

图表的y_axisNumericAxis类型。要实现您想要的,您需要定义它的majorUnit属性:

chart.y_axis.majorUnit = 1

如何知道特定类型的图表或轴有哪些属性可用? 你需要弄清楚实施了什么。您的图表是BarChart类型。检查documentation on BarChart得出其x轴是TextAxis类型,而y轴是NumericAxis。所有轴类型的特性都记录在案here。显然,tickLblSkip属性只存在于TextAxisSeriesAxis中。对于NumericAxis,您将需要unit属性,可能minmax也很有用。你知道吗

确定任何对象类型的一种简单、交互式的方法是type()方法。放

print(type(chart.y_axis))

在您的代码中将方便地显示:

<class 'openpyxl.chart.axis.NumericAxis'>

相关问题 更多 >

    热门问题