2016-10-15 10 views
0

Внутри XYchart, созданного python-pptx, я хотел бы добавить метки к каждой точке серии. Код выглядит следующим образом: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

 Смежные вопросы

  • Нет связанных вопросов^_^