2016-10-15 22 views
0

python-pptxで生成されたXYチャート内で、シリーズの各ポイントにラベルを追加したいと思います。コードは次のようになります。python pptx XyChart設定ラベルのフォントサイズ

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) 

新しいテキストが正しく設定されていますが、フォントサイズを変更するためにパラを繰り返しても効果はありません。どのように私はラベルのフォントサイズの変更を達成することができる任意のアイデア?

答えて

1

の後に、フォントサイズをに設定する必要があります。

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を呼び出すと、既存のすべての段落が削除され、単一の新しい段落が追加されます。途中で、指定されたテキストを追加する前に、すべての文字書式が削除されて「クリーンスレート」が作成されます。

PowerPointは段落レベルでフォントを使用するかどうかを覚えていません(a:defRPr要素を使用)。そうでない場合は、ORラインの後に示すように、実行レベルで実行する必要があります。

+0

ありがとうございました。代替2がありました。あなたは行為を通して反復をする必要があります。 – user5664778

関連する問題