gpt4 book ai didi

Python-PPTX : Data Label Positions not working for Doughnut Chart

转载 作者:太空宇宙 更新时间:2023-11-04 09:46:16 26 4
gpt4 key购买 nike

我有一个图表占位符,我在其中插入了图表类型为“DOUGHNUT”的图表。我给它添加了数据标签并想改变它们的位置。由于某些原因,文档中给出的方法对我的图表没有影响。

这是我的代码,如果我做错了什么请帮助-

from pptx import Presentation
from pptx.chart.data import ChartData
from pptx.enum.chart import XL_CHART_TYPE, XL_LABEL_POSITION, XL_DATA_LABEL_POSITION, XL_TICK_MARK, XL_TICK_LABEL_POSITION

chart_data = ChartData()
chart_data.add_series('', tuple(input_chart_data[x] for x in input_chart_data))

graphic_frame = content_placeholder.insert_chart(XL_CHART_TYPE.DOUGHNUT, chart_data)
chart = graphic_frame.chart

chart.has_legend = False

#Adding Data-Labels with custom text
chart.plots[0].has_data_labels = True
data_labels = chart.plots[0].data_labels

i = 0
series = chart.series[0]
for point in series.points:
fill = point.format.fill
fill.solid()
fill.fore_color.rgb = RGBColor(<color_code>)
point.data_label.has_text_frame = True

#Assigning custom text for data label associated with each data-point
point.data_label.text_frame.text = str(chart_data.categories[i].label) + "\n" + str(float(chart.series[0].values[i])) + "%"

for run in point.data_label.text_frame.paragraphs[0].runs:
run.font.size = Pt(10)

i+=1

data_labels.position = XL_LABEL_POSITION.OUTSIDE_END

最佳答案

PowerPoint 对放置某些图表属性的位置很挑剔,并且可以在需要时随意忽略它们(尽管它一直这样做)。

一个值得尝试的快速选项是在系列中逐点单独设置值。所以像这样:

for point in series.points:
point.data_label.position = XL_LABEL_POSITION.OUTSIDE_END

最可靠的方法是从手工制作您想要的效果开始,在示例图表上使用 PowerPoint 本身,然后检查 PowerPoint 在保存的文件中生成的 XML,也许使用 opc-diag .一旦您确定了哪些 XML 会产生所需的效果(或者发现 PowerPoint 不允许您这样做),您就可以继续研究如何获取由 python-pptx 生成的 XML。如果你能做到这一点,那可能是一个很好的第二个问题。

关于Python-PPTX : Data Label Positions not working for Doughnut Chart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49669466/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com