Я пытаюсь добавить заголовок в диаграмму powerpoint, созданную с использованием библиотеки python-pptx
. Я на OSX с Python 2.7 и Python pptx версии 0.6.1.Заголовок диаграммы с использованием python-pptx
Код для создания диаграммы ниже:
df = pd.read_excel("/Users/vagabond/Documents/python_pptx_3/Bar_Charts.xlsx", sheetname=None)
f = open('/Users/vagabond/Documents/python_pptx_3/Presentation1.pptx')
prs = ppt.Presentation(f)
for sheetname, data in df.iteritems():
slide_layout = prs.slide_layouts[9]
slide = prs.slides.add_slide(slide_layout)
chart_data = ppt.chart.data.XyChartData()
series_1 = chart_data.add_series('Series 1')
## iterate through rows of the data frame for desired columns and add data points
for index, row in data.iterrows():
series_1.add_data_point(row['Share_of_apples'], row['Share_of_oranges'])
## define co-ordinates on the slide
x, y, cx, cy = Inches(1), Inches(3), Inches(7), Inches(4)
chart = slide.shapes.add_chart(
XL_CHART_TYPE.XY_SCATTER, x, y, cx, cy, chart_data
).chart
prs.save('scatter_charts.pptx')
Теперь, чтобы добавить название, я добавил следующее после slide.shapes.add_chart
вызова:
chart.has_title = True
chart.title = sheetname
В случае, если вы задаетесь вопросом, значение имя_файла в chart.title = sheetname
- это ключи ключа dict df, которые я читал в первой строке. Для каждого графика я хочу, чтобы ключ пары ключ-значение в словаре был назначен. Программа работает без ошибок.
Проблема в том, что она не добавляет заголовков диаграмм.
Я проверил, если chart.chart_title содержит какое-либо значение, и это дает мне ошибку:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-26-7cb6c1e79da2> in <module>()
1 chart.has_title = True
2
----> 3 chart.chart_title.has_text_frame = True
AttributeError: 'Chart' object has no attribute 'chart_title'
Было ли что-то, что вы читали, что привело вас к мысли, что 'python-pptx' имеет' Chart.chart_title' в своем API? Иногда люди находят одно из предложений по усовершенствованию поиска и воспринимают это как «построенную» информацию, где это на самом деле «не было бы здорово, если бы это сделало это?» information :) – scanny
Да, я прочитал его в документации и думал, что он уже реализован. Возможно, неправильно поняли. Я поделюсь ссылкой. – vagabond
Вот ссылка: http://python-pptx.readthedocs.io/en/latest/dev/analysis/cht-title.html?highlight=title. Есть строка, в которой говорится: «Хотя это еще не будет поддержано, заголовок диаграммы можно указать в XML как ссылку на ячейку на листе Excel. В общем, любые конструктивные операции над заголовком удаляют это». Я не знал, как это интерпретировать. – vagabond