python pptx XyChart 设置标签字体大小

python pptx XyChart setting label font size

在 python-pptx 生成的 XY 图中,我想为系列的每个点添加标签。代码如下所示:

for p, v in zip(chart.series[0].points, dataSeries):
    p.data_label.position = XL_LABEL_POSITION.ABOVE
    p.data_label.text_frame.clear()
    for paras in p.data_label.text_frame.paragraphs:
        paras.font.size = Pt(10)
    p.data_label.text_frame.text = str.format('{0:.1f}', v)

新文本设置正确,但遍历参数以更改字体大小无效。有什么想法可以改变标签的字体大小吗?

添加文本框文本后需要设置字体大小

data_label = p.data_label
...
text_frame = data_label.text_frame
# text_frame.clear()  # this line is not needed, assigning to .text does this
text_frame.text = str.format('{0:.1f}', v)
for paragraph in text_frame.paragraphs:
    paragraph.font.size = Pt(10)

# -- OR --

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

当您调用 TextFrame.text 时,将删除所有现有段落并添加一个新段落。在此过程中,所有字符格式都被删除以在添加指定文本之前生成 "clean slate"。

我不记得 PowerPoint 是否尊重在段落级别设置的字体(使用 a:defRPr 元素)。如果没有,您需要在 运行 级别执行此操作,如 -- OR -- 行后所示。