GOOGLE ADS

вторник, 3 мая 2022 г.

Метки данных форматирования Python-pptx после добавления текста

Поскольку мне нужно было добавить собственный текст к меткам данных диаграммы в python-pptx, я использовал

for point in plot.series[1].points:
frame = point.data_label.text_frame
frame.text = "Test "
for run in frame.paragraphs[0].runs:
run.font.size = Pt(10)
run.font.color.rgb = RGBColor(0x0A, 0x42, 0x80)

Это позволило мне изменить шрифт меток, но мне нужно было их повернуть. Я видел решение из этой другой темы, но оно не работает. Любые идеи?


Решение проблемы

Я считаю, что вам нужно изменить txPr (как в упомянутой вами ветке), но в соответствующем дочернем элементе:


for all_series in range(0, len(plot.series)):
for i in range(0, len(plot.series[all_series]._element)):
if re.sub("{.*}", '', plot.series[all_series]._element[i].tag) == >"dLbls":
txPr = plot.series[all_series]._element[i].get_or_add_txPr()
txPr.bodyPr.set('rot', '-5400000')

Таким образом, вам нужно получить доступ к дочернему элементу "dLbls" в правильном индексе элемента, "[i]" - это отличие от упомянутого потока. Я использую регулярные выражения для получения имени из метода ".tag". Вероятно, есть лучший способ найти правильный индекс, но это как минимум один;)

Это решение повторяется по всем сериям, если вам это не нужно, вы можете пропустить первый цикл (при условии, что вам нужна только 1-я серия):


for i in range(0, len(plot.series[1]._element)):
if re.sub("{.*}", '', plot.series[1]._element[i].tag) == "dLbls":
txPr = plot.series[1]._element[i].get_or_add_txPr()
txPr.bodyPr.set('rot', '-5400000')

Обратите внимание, что это относится только к меткам данных, которые были установлены в одной точке, например, через


plot.series[1].points[0].data_label.text_frame.text = "Foo"

Надеюсь, это поможет:)

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...