パワポへグラフを自動で挿入したい場合、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におけるメダルの獲得数のデータを引用しています。
横軸に使用するカテゴリを金・銀・銅とします。
c_data.categories=['gold','sliver','bronze']
縦軸に使用するデータを設定します。
レイアウト5のスライドを追加します。
shapes[0]のテキストはグラフのタイトルです。
スライドの追加等の解説は以前の記事で紹介しています。
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')
意外と簡単にグラフを作成することができました。
グラフは図で保存したものでないので、パワポ上で後から編集することもできます。
以上で解説は終わりです。