Python

【Pythonでパワポ資料を作成 】<<第3回>>グラフを挿入する

パワポへグラフを自動で挿入したい場合、Excelを介して作成することもできますが、Pythonを使えばExcelを使わずに直接作成することができます。

一度Pythonコードを作ってしまえば、毎朝決まった時間に報告資料を作成することも可能です。

そこで、今回はPythonを使ってパワポへグラフへ挿入する方法を紹介します。

必要なライブラリをインポート

毎回のようにPresentationをインポートします。

これをprsとして使用していきます。

from pptx import Presentation
prs=Presentation()

グラフ用のCategoryChartDataをインポートします。

これをc_dataとして使用していきます。

from pptx.chart.data import CategoryChartData
c_data=CategoryChartData()

作成するグラフのカテゴリを指定する

今回は棒グラフを作成します。

データはこちらで使用したChinaにおけるメダルの獲得数のデータを引用しています。

【StreamlitでWebアプリ作成】<<第4回>>選択肢とグラフを連携する 今回の内容は第3回の続きです。 https://cafe-mickey.com/python/streamlit-3/ セレクト...

横軸に使用するカテゴリを金・銀・銅とします。

c_data.categories=['gold','sliver','bronze']

縦軸に使用するデータを設定します。

レイアウト5のスライドを追加します。

shapes[0]のテキストはグラフのタイトルです。

スライドの追加等の解説は以前の記事で紹介しています。

【Pythonでパワポ資料を作成 】<<第1回>>タイトルスライドを作成し保存する Pythonで整理したデータやグラフを他人と共有する際、皆さんはどうしていますか。 PlotlyでpngやHTMLファイルで保存するの...
c_data.add_series('メダル獲得',(10,15,8))

sld0=prs.slides.add_slide(prs.slide_layouts[5])
sld0.shapes[0].text='メダル獲得数'

グラフの種類と位置を指定する

ここで、グラフの種類を指定するためにXL_CHART_TYPEを、

グラフの位置を指定するためにCmクラスをインポートします。

グラフの配置にはadd_chart関数を使用します。

XL_CHART_TYPE.COLUMN_CLUSTEREDが棒グラフの指定です。

グラフの位置は左上端の座標と、幅と高さで指定します。

Cmはcmを表してCm(1)なら1cmを意味します。

from pptx.enum.chart import XL_CHART_TYPE
from pptx.util import Cm

sld0.shapes.add_chart(
    XL_CHART_TYPE.COLUMN_CLUSTERED,
    Cm(1),Cm(3),Cm(20),Cm(15),c_data)

ファイルを生成して確認してみます。

prs.save('sample.pptx')

意外と簡単にグラフを作成することができました。

グラフは図で保存したものでないので、パワポ上で後から編集することもできます。

以上で解説は終わりです。

ABOUT ME
Mickey@コーヒー好きエンジニア
【製造×プログラミング×AI】 趣味は自家焙煎コーヒー作り。Python、VBAでの業務改善を得意とする。最近はStreamlit、Plotly、Pythonista 3にハマり中。 note、Twitter、Instagramやっています♪ noteではコーヒーの海外論文(主に焙煎理論)やAIに関する情報の発信をしています。