繁体   English   中英

python-pptx:将图表的值轴设置为在 0 处交叉

[英]python-pptx: Set the value axis of a chart to cross at 0

我想使用 python-pptx 创建一个图表,其中值轴始终从 0 开始。从阅读文档看来,这应该可以使用crossescrosses_at设置器。 但是,当我使用下面的代码尝试此操作时,值轴仍然从 314 开始。我是在这里误解了 api 还是这是一个错误?

from pptx import Presentation
from pptx.enum.chart import XL_AXIS_CROSSES
from pptx.chart.data import CategoryChartData
from pptx.util import Inches
from pptx.enum.chart import XL_CHART_TYPE


prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[5])

chart_data = CategoryChartData()
chart_data.categories = ['East', 'West', 'Midwest']
chart_data.add_series('Series 1', (319.2, 321.4, 316.7))
x, y, cx, cy = Inches(2), Inches(2), Inches(6), Inches(4.5)
graphic_frame = slide.shapes.add_chart(XL_CHART_TYPE.COLUMN_CLUSTERED, x, y, cx, cy, chart_data)
chart = graphic_frame.chart

value_axis = chart.value_axis
value_axis.crosses = XL_AXIS_CROSSES.CUSTOM
value_axis.crosses_at = 0  # always start value axis at 0

prs.save('demo.pptx')

我相信您正在寻找的是value_axis.minimum_scale = 0

默认情况下,未指定此值(返回None ),这意味着“自动”。 该设置将调整显示范围的最小值以充分利用显示区域(根据某些算法)。

当您明确指定它时,显示范围的末端将变为固定。

最小显示值处的类别轴交叉是默认行为,因此在这种情况下您不需要.crosses.crosses_at设置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM