1

如何切换下面标记为红色的参数(英文:python pptx 中的“显示类别”用​​于饼图?任何想法表示赞赏。

MS Powerpoint 参数对话框

4

2 回答 2

1

在0.6.16 版本中添加了在数据标签中显示类别名称。您可以通过在图表的 data_labels 中设置show_category_name来显示它。True

chart.plots[0].data_labels.show_category_name = True

数据标签中还添加了一些选项,您可以在中查看完整列表。

于 2018-12-18T16:43:07.703 回答
1

显然有一个功能请求:https ://github.com/scanny/python-pptx/issues/242

同时,可以通过从 python 设置标签文本来解决这个问题,例如:

from pptx import Presentation
from pptx.chart.data import ChartData
from pptx.enum.chart import XL_CHART_TYPE, XL_LABEL_POSITION
from pptx.util import Inches

# create presentation with 1 slide ------
prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[5])

chart_data = ChartData()
chart_data.categories = ['West', 'East', 'North', 'South', 'Other']
chart_data.add_series('Series 1', (0.135, 0.324, 0.180, 0.235, 0.126))

x, y, cx, cy = Inches(2), Inches(2), Inches(6), Inches(4.5)
chart = slide.shapes.add_chart(
    XL_CHART_TYPE.PIE, x, y, cx, cy, chart_data
).chart

chart.has_legend = False

# set labels to contain category and value
for i in range(len(chart_data.categories)):
    point = chart.series[0].points[i]
    point.data_label.text_frame.text = "{}: {:.0%}".format(chart_data.categories[i].label, chart.series[0].values[i])
    point.data_label.position = XL_LABEL_POSITION.OUTSIDE_END

prs.save('chart-01.pptx')
于 2017-01-18T21:58:36.407 回答