2

python-pptxライブラリを使用して作成したパワーポイント チャートにタイトルを追加しようとしています。私は Python 2.7 と Python pptx バージョン 0.6.1 で OSX を使用しています。

チャートを作成するコードは次のとおりです。

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

ご参考までに、値 sheetname はchart.title = sheetname、最初の行で読み取った dict df の dict キーです。すべての chart に対して、ディクショナリのキーと値のペアのキーを割り当てる必要があります。プログラムはエラーなしで実行されます。

問題は、グラフのタイトルが追加されないことです。

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'
4

1 に答える 1

3

更新:質問に対するこの元の回答以降Chart.chart_titleChart.has_title追加されました: https://python-pptx.readthedocs.io/en/latest/api/chart.html#pptx.chart.chart.Chart.chart_titlepython-pptx


python-pptxチャート タイトルの API サポートはまだありません。

への割り当てChart.has_titleでエラーが発生しない理由は、Python が最初の割り当てでその属性を追加するためです (動的言語であるため)。その属性は API にはありません。

于 2016-11-28T20:20:29.387 に答える