python-pptxを使用すると、Pythonを使用してPowerPointを操作することができます。
本記事では、python-pptxを使用した棒グラフの挿入と凡例設定について、詳しくご説明します。
棒グラフの挿入と凡例設定
棒グラフの挿入
棒グラフを挿入するため、まずはpptx.enum.chartモジュールから、グラフの種類に応じたクラス(XL_CHART_TYPE)を選ぶ必要があります。
主要なXL_CHART_TYPEクラスは、以下の通りです。
グラフ | XL_CHART_TYPEクラス |
---|---|
棒グラフ | XY_SCATTER |
散布図 | BAR_CLUSTERED |
折れ線グラフ(マーカー無) | LINE |
折れ線グラフ(マーカー有) | LINE_MARKERS |
円グラフ | PIE |
上表より、棒グラフの挿入には、XY_SCATTERを指定します。
また、グラフのデータを指定するには、ChartDataオブジェクトを作成する必要があります。
棒グラフの場合、CategoryChartDataクラスを指定します。
以下に、上記を指定した棒グラフの挿入例をご紹介します。
#input
from pptx import Presentation
from pptx.chart.data import CategoryChartData
from pptx.enum.chart import XL_CHART_TYPE
from pptx.util import Pt
prs=Presentation()
sld = prs.slides.add_slide(prs.slide_layouts[5])
sld.shapes[0].text = "棒グラフ"
# CategoryChartDataオブジェクト作成
c_data = CategoryChartData()
c_data.categories = ["Apple", "Orange", "Banana"]
c_data.add_series("Sep.", (1305, 2065, 4025))
c_data.add_series("Oct.", (3000, 2700, 1550))
c_data.add_series("Nov.", (2600, 3050, 1600))
left = Pt(50)
top = Pt(150)
width = Pt(600)
height = Pt(300)
# 棒グラフの挿入
sld.shapes.add_chart(XL_CHART_TYPE.COLUMN_CLUSTERED, left, top, width, height, c_data)
ch = sld.shapes[1].chart
prs.save("sample022.pptx")
凡例設定
has_legendプロパティをTrueとすることで、凡例を有効にすることができます。
legend.positionプロパティで配置場所(上下左右)を指定します。
legend.include_in_layoutをTrueとすることで、凡例をグラフの中に配置することができます。
以下に、上記を指定した凡例の挿入例をご紹介します。
import collections
import collections.abc
#input
from pptx import Presentation
from pptx.chart.data import CategoryChartData
from pptx.enum.chart import XL_CHART_TYPE
from pptx.enum.chart import XL_LEGEND_POSITION
from pptx.util import Pt
prs=Presentation()
sld = prs.slides.add_slide(prs.slide_layouts[5])
sld.shapes[0].text = "棒グラフ"
# CategoryChartDataオブジェクト作成
c_data = CategoryChartData()
c_data.categories = ["Apple", "Orange", "Banana"]
c_data.add_series("Sep.", (1305, 2065, 4025))
c_data.add_series("Oct.", (3000, 2700, 1550))
c_data.add_series("Nov.", (2600, 3050, 1600))
left = Pt(50)
top = Pt(150)
width = Pt(600)
height = Pt(300)
# 棒グラフの挿入
sld.shapes.add_chart(XL_CHART_TYPE.COLUMN_CLUSTERED, left, top, width, height, c_data)
ch = sld.shapes[1].chart
# 凡例設定
ch.has_legend = True
ch.legend.position = XL_LEGEND_POSITION.RIGHT
ch.legend.include_in_layout = False
prs.save("sample023.pptx")
まとめ
この記事では、python-pptxを使用した棒グラフの挿入と凡例設定について、ご説明しました。
本記事を参考に、ぜひ試してみて下さい。
参考
Python学習用おすすめ教材
Pythonの基本を学びたい方向け
統計学基礎を学びたい方向け
Pythonの統計解析を学びたい方向け
おすすめプログラミングスクール
Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。
私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。
現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。
無料体験ができますので、まずは試してみてください!