【Python】散布図の挿入とマーカーの設定|python-pptx基礎

散布図の挿入とマーカーの設定|python-pptx基礎_アイキャッチ プログラミング

※ 当サイトはアフィリエイト広告を利用しています。

levtech-ad
スポンサーリンク

python-pptxを使用すると、Pythonを使用してPowerPointを操作することができます。

本記事では、python-pptxを使用した散布図の挿入とマーカーの設定について、詳しくご説明します。

こんな人に読んでほしい
  • Pythonを使用してPowerPointを操作したい人
  • python-pptxを使用した、散布図の挿入・マーカーの設定方法を知りたい人
levtech-ad

散布図の挿入とマーカーの設定

散布図の挿入

散布図を挿入するため、まずはpptx.enum.chartモジュールから、グラフの種類に応じたクラス(XL_CHART_TYPE)を選ぶ必要があります。

主要なXL_CHART_TYPEクラスは、以下の通りです。

グラフXL_CHART_TYPEクラス
棒グラフXY_SCATTER
散布図BAR_CLUSTERED
折れ線グラフ(マーカー無)LINE
折れ線グラフ(マーカー有)LINE_MARKERS
円グラフPIE

上表より、散布図の挿入には、BAR_CLUSTEREDを指定します。

また、グラフのデータを指定するには、ChartDataオブジェクトを作成する必要があります。

散布図の場合、XyChartDataクラスを指定します。

以下に、上記を指定した散布図の挿入例をご紹介します。

#input
from pptx import Presentation
from pptx.chart.data import XyChartData
from pptx.enum.chart import XL_CHART_TYPE
from pptx.util import Pt
import numpy as np

prs=Presentation()
sld = prs.slides.add_slide(prs.slide_layouts[5])
sld.shapes[0].text = "散布図"

# XyChartDataオブジェクト作成
val1 = []
val2 = []

# データセット作成
for i in range(20):
    val1.append(( i, np.cos(i)-1.5))
    val2.append(( i, np.cos(i)+1.5))

# 系列作成
c_data = XyChartData()
s1 = c_data.add_series('y=cos(x)-1.5')
s2 = c_data.add_series('y=cos(x)+1.5')

# 系列とデータセットをリンク
for val in val1:
    s1.add_data_point(val[0], val[1])
for val in val2:
    s2.add_data_point(val[0], val[1])

left    = Pt(50)
top     = Pt(150)
width   = Pt(600)
height  = Pt(300)

# 散布図の挿入
sld.shapes.add_chart(XL_CHART_TYPE.XY_SCATTER, left, top, width, height, c_data)
ch = sld.shapes[1].chart

# 軸の設定
axis = ch.value_axis
axis.has_title = True
axis.axis_title.text_frame.text = "Y"

prs.save("sample024.pptx")
散布図の挿入

マーカーの設定

Seriesオブジェクトのmarkerプロパティにより、マーカーのスタイルやサイズを設定することができます。

マーカースタイルは、XL_MARKER_STYLEの中から選択することができます。

またmarkerプロパティのformatにより、マーカーの塗りつぶしの色や枠線の色・太さを設定することができます。

以下に、マーカーの設定例をご紹介します。

#input
from pptx import Presentation
from pptx.chart.data import XyChartData
from pptx.enum.chart import XL_CHART_TYPE
from pptx.enum.chart import XL_MARKER_STYLE
from pptx.dml.color import RGBColor
from pptx.util import Pt
import numpy as np

prs=Presentation()
sld = prs.slides.add_slide(prs.slide_layouts[5])
sld.shapes[0].text = "散布図"

# XyChartDataオブジェクト作成
val1 = []
val2 = []

# データセット作成
for i in range(20):
    val1.append(( i, np.cos(i)-1.5))
    val2.append(( i, np.cos(i)+1.5))

# 系列作成
c_data = XyChartData()
s1 = c_data.add_series('y=cos(x)-1.5')
s2 = c_data.add_series('y=cos(x)+1.5')

# 系列とデータセットをリンク
for val in val1:
    s1.add_data_point(val[0], val[1])
for val in val2:
    s2.add_data_point(val[0], val[1])

left    = Pt(50)
top     = Pt(150)
width   = Pt(600)
height  = Pt(300)

# 散布図の挿入
sld.shapes.add_chart(XL_CHART_TYPE.XY_SCATTER, left, top, width, height, c_data)
ch = sld.shapes[1].chart

# 軸の設定
axis = ch.value_axis
axis.has_title = True
axis.axis_title.text_frame.text = "Y"

# マーカーの設定
sers = ch.series

# スタイルを「CIRCLE」に設定
sers[0].marker.style = XL_MARKER_STYLE.CIRCLE
# サイズを「15」に設定
sers[0].marker.size = 15
# 塗りつぶしの色を「赤」に設定
sers[0].marker.format.fill.solid() 
sers[0].marker.format.fill.fore_color.rgb = RGBColor(255, 0, 0)
# 枠線の太さを「2Pt」に設定
sers[0].marker.format.line.width = Pt(2)
# 枠線の色を「黒」に設定
sers[0].marker.format.line.color.rgb = RGBColor(0, 0, 0)

# スタイルを「DIAMOND」に設定
sers[1].marker.style = XL_MARKER_STYLE.DIAMOND
# サイズを「15」に設定
sers[1].marker.size = 15
# 塗りつぶしの色を「青」に設定
sers[1].marker.format.fill.solid() 
sers[1].marker.format.fill.fore_color.rgb = RGBColor(0, 0, 255)
# 枠線の太さを「2Pt」に設定
sers[1].marker.format.line.width = Pt(2)
# 枠線の色を「黒」に設定
sers[1].marker.format.line.color.rgb = RGBColor(0, 0, 0)

prs.save("sample025.pptx")
散布図の挿入(マーカーの設定)

まとめ

この記事では、python-pptxを使用した散布図の挿入とマーカーの設定について、ご説明しました。

本記事を参考に、ぜひ試してみて下さい。

参考

Python学習用おすすめ教材

Pythonの基本を学びたい方向け

統計学基礎を学びたい方向け

Pythonの統計解析を学びたい方向け

おすすめプログラミングスクール

Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。

私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。

現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。

無料体験ができますので、まずは試してみてください!

\まずは無料体験!/
スポンサーリンク
タイトルとURLをコピーしました