【初心者向け】Python×openpyxlでExcelに散布図を描く方法を丁寧に解説!

openpyxlで散布図を作成する方法


この記事では、「openpyxl」ライブラリを使ってExcelに散布図(ScatterChart)を作成する方法を、サンプルコード付きでわかりやすく解説します。
「広告費と売上」の関係性を可視化する具体例を使いながら、グラフのタイトル設定、データの指定、マーカーの形やサイズ、線の表示スタイルなどを紹介しています。
Excel業務を効率化したい方や、Python×データ可視化の基礎を学びたい方におすすめの記事です!

ライブラリをインポート

まずは、Excelファイルの操作とグラフ作成に必要なライブラリを読み込みます。

from openpyxl import Workbook
from openpyxl.chart import ScatterChart, Reference, Series

元となるデータを準備する

散布図には数値データが必要です。以下は「広告費」と「売上」の例です。

wb = Workbook()
ws = wb.active

# ヘッダーとデータ
data = [
    ["広告費", "売上"],
    [100, 400],
    [150, 420],
    [200, 480],
    [250, 500]
]

for row in data:
    ws.append(row)

ScatterChartオブジェクトを作成する

次に、散布図のオブジェクトを生成し、タイトルや軸ラベルを設定します。

chart = ScatterChart()
chart.title = "広告費と売上の関係"
chart.x_axis.title = "広告費(千円)"
chart.y_axis.title = "売上(千円)"

散布図のスタイルを変更する

scatterStyleは、散布図における線とマーカーの表示スタイルを指定するプロパティです。次のような値が使用可能です。

  • line:線のみを描画(マーカーなし)
  • marker:点(マーカー)のみを表示(線なし)
  • lineMarker:線とマーカーを両方表示(デフォルト)
  • smooth:滑らかな線のみを表示
  • smoothMarker:滑らかな線+マーカー

例:

chart.scatterStyle = "marker"

マーカーの形を変更する

series.marker.symbolは、データ点(マーカー)の形状を設定するためのプロパティです。

  • circle(円)
  • square(四角)
  • diamond(ひし形)
  • triangle(三角形)
  • x(バツ印)

例:

series.marker.symbol = "diamond"

マーカーのサイズを指定する

series.marker.sizeは、各マーカー(データ点)の表示サイズ(半径)を数値で指定します。

例:

series.marker.size = 8

データの範囲を指定してグラフに追加

X軸(広告費)とY軸(売上)のデータをそれぞれ参照し、グラフに紐づけます。

# X軸(広告費):A2~A5
x_values = Reference(ws, min_col=1, min_row=2, max_row=5)

# Y軸(売上):B2~B5
y_values = Reference(ws, min_col=2, min_row=2, max_row=5)

# Seriesとして追加(X, Yのセット)
series = Series(y_values, x_values, title="売上")
chart.series.append(series)

グラフをシートに挿入し、Excelファイルを保存

グラフをExcelシート上に配置し、ファイルとして保存します。

ws.add_chart(chart, "D2")  # D2セルにグラフを挿入
wb.save("scatter_chart.xlsx")

公式ドキュメント

Scatter Charts — openpyxl 3.1.3 documentation

関連記事

【初心者OK】Python×openpyxlでExcelにグラフを描く方法を図解で解説!
はじめに「Excelでグラフを自動作成できたら便利だな…」そう思ったことはありませんか?そんな時に便利なのが、Pythonのライブラリopenpyxlです。この記事では、棒グラフを例にして、openpyxlでグラフを作成する基本ステップをわ...

コメント

タイトルとURLをコピーしました