【Python】エクセルワークシートにグラフを作成する方法

この記事では、Pythonを使用してエクセルワークシートを操作し、さまざまな種類のグラフを作成する方法を紹介します。

エクセルファイルの読み込みからグラフのカスタマイズ、保存まで、一連の手順をわかりやすく解説しています。

Pythonを使ってグラフを作成したい初心者の方におすすめの内容です。

目次から探す

Pythonでエクセルワークシートを操作するための準備

Pythonを使用してエクセルワークシートを操作するためには、まず必要な準備作業があります。

以下では、必要なライブラリのインポート方法、エクセルファイルの読み込み方法、ワークブックとシートの選択方法について解説します。

ライブラリのインポート

Pythonでエクセルファイルを操作するためには、openpyxlというライブラリを使用します。

このライブラリをインポートすることで、Pythonからエクセルファイルを読み書きすることができます。

import openpyxl

エクセルファイルの読み込み

エクセルファイルを読み込むには、openpyxl.load_workbook()メソッドを使用します。

このメソッドに読み込むエクセルファイルのパスを指定することで、エクセルファイルをPythonのプログラムに取り込むことができます。

workbook = openpyxl.load_workbook('sample.xlsx')

ワークブックとシートの選択

ワークブック内の特定のシートを選択するには、workbookオブジェクトからget_sheet_by_name()メソッドを使用します。

このメソッドにシート名を指定することで、そのシートを選択することができます。

sheet = workbook.get_sheet_by_name('Sheet1')

これで、Pythonでエクセルワークシートを操作するための準備が整いました。

次は、実際にグラフを作成する方法について見ていきましょう。

グラフを作成する方法

折れ線グラフの作成

Pythonを使用してエクセルワークシートに折れ線グラフを作成する方法は簡単です。

まず、データを適切に準備し、そのデータをグラフ化します。

以下は折れ線グラフを作成するサンプルコードです。

import openpyxl
from openpyxl.chart import LineChart, Reference

# エクセルファイルの読み込み
wb = openpyxl.load_workbook('sample.xlsx')
sheet = wb.active

# チャートオブジェクトを作成
chart = LineChart()
chart.title = "折れ線グラフ"

# データ範囲を指定
data = Reference(sheet, min_col=2, min_row=1, max_col=4, max_row=6)

# チャートにデータを追加
chart.add_data(data, titles_from_data=True)

# グラフをワークシートに追加
sheet.add_chart(chart, "E2")

# エクセルファイルを保存
wb.save('sample.xlsx')

棒グラフの作成

次に、Pythonを使用してエクセルワークシートに棒グラフを作成する方法を紹介します。

以下は棒グラフを作成するサンプルコードです。

import openpyxl
from openpyxl.chart import BarChart, Reference

# エクセルファイルの読み込み
wb = openpyxl.load_workbook('sample.xlsx')
sheet = wb.active

# チャートオブジェクトを作成
chart = BarChart()
chart.title = "棒グラフ"

# データ範囲を指定
data = Reference(sheet, min_col=2, min_row=1, max_col=4, max_row=6)

# チャートにデータを追加
chart.add_data(data, titles_from_data=True)

# グラフをワークシートに追加
sheet.add_chart(chart, "E2")

# エクセルファイルを保存
wb.save('sample.xlsx')

円グラフの作成

円グラフを作成するためには、PythonのOpenPyXLライブラリを使用してエクセルワークシートに円グラフを描画します。

以下は円グラフを作成するサンプルコードです。

import openpyxl
from openpyxl.chart import PieChart, Reference

# エクセルファイルの読み込み
wb = openpyxl.load_workbook('sample.xlsx')
sheet = wb.active

# チャートオブジェクトを作成
chart = PieChart()
chart.title = "円グラフ"

# データ範囲を指定
data = Reference(sheet, min_col=2, min_row=1, max_col=2, max_row=6)

# チャートにデータを追加
chart.add_data(data, titles_from_data=True)

# グラフをワークシートに追加
sheet.add_chart(chart, "E2")

# エクセルファイルを保存
wb.save('sample.xlsx')

散布図の作成

最後に、Pythonを使用してエクセルワークシートに散布図を作成する方法を紹介します。

以下は散布図を作成するサンプルコードです。

import openpyxl
from openpyxl.chart import ScatterChart, Reference

# エクセルファイルの読み込み
wb = openpyxl.load_workbook('sample.xlsx')
sheet = wb.active

# チャートオブジェクトを作成
chart = ScatterChart()
chart.title = "散布図"

# データ範囲を指定
x_data = Reference(sheet, min_col=2, min_row=1, max_col=2, max_row=6)
y_data = Reference(sheet, min_col=3, min_row=1, max_col=3, max_row=6)

# チャートにデータを追加
chart.add_data(x_data, titles_from_data=True)
chart.add_data(y_data, titles_from_data=True)

# グラフをワークシートに追加
sheet.add_chart(chart, "E2")

# エクセルファイルを保存
wb.save('sample.xlsx')

これで、Pythonを使用してエクセルワークシートにさまざまな種類のグラフを作成する方法がわかりました。

それぞれのグラフ作成方法を試してみて、データを視覚的に表現しましょう。

グラフのカスタマイズ

グラフのタイトル設定

グラフにタイトルを追加することで、グラフの内容をわかりやすく伝えることができます。

以下はタイトルを設定するサンプルコードです。

import openpyxl
from openpyxl.chart import LineChart, Reference

# グラフを作成するエクセルファイルを開く
wb = openpyxl.load_workbook('sample.xlsx')
ws = wb.active

# チャートオブジェクトを作成
chart = LineChart()
chart.title = "売上推移"  # グラフのタイトルを設定

# データ範囲を指定してグラフを作成
data = Reference(ws, min_col=2, min_row=1, max_col=4, max_row=6)
chart.add_data(data)

# グラフをワークシートに追加
ws.add_chart(chart, "E1")

# エクセルファイルを保存
wb.save('sample.xlsx')

軸ラベルの設定

グラフの軸にラベルを追加することで、データの意味を明確に示すことができます。

以下は軸ラベルを設定するサンプルコードです。

import openpyxl
from openpyxl.chart import BarChart, Reference

# グラフを作成するエクセルファイルを開く
wb = openpyxl.load_workbook('sample.xlsx')
ws = wb.active

# チャートオブジェクトを作成
chart = BarChart()
chart.x_axis.title = "月"  # X軸のラベルを設定
chart.y_axis.title = "売上"  # Y軸のラベルを設定

# データ範囲を指定してグラフを作成
data = Reference(ws, min_col=2, min_row=1, max_col=4, max_row=6)
chart.add_data(data)

# グラフをワークシートに追加
ws.add_chart(chart, "E1")

# エクセルファイルを保存
wb.save('sample.xlsx')

凡例の追加

複数のデータ系列を含むグラフでは、凡例を追加することで各データ系列を識別しやすくなります。

以下は凡例を追加するサンプルコードです。

import openpyxl
from openpyxl.chart import PieChart, Reference

# グラフを作成するエクセルファイルを開く
wb = openpyxl.load_workbook('sample.xlsx')
ws = wb.active

# チャートオブジェクトを作成
chart = PieChart()
chart.legend = None  # 凡例を非表示にする

# データ範囲を指定してグラフを作成
data = Reference(ws, min_col=2, min_row=1, max_col=2, max_row=6)
labels = Reference(ws, min_col=1, min_row=2, max_row=6)
chart.add_data(data, titles_from_data=True)
chart.set_categories(labels)

# グラフをワークシートに追加
ws.add_chart(chart, "E1")

# エクセルファイルを保存
wb.save('sample.xlsx')

色やスタイルの変更

グラフの色やスタイルを変更することで、視覚的な印象を強調することができます。

以下はグラフの色やスタイルを変更するサンプルコードです。

import openpyxl
from openpyxl.chart import ScatterChart, Reference

# グラフを作成するエクセルファイルを開く
wb = openpyxl.load_workbook('sample.xlsx')
ws = wb.active

# チャートオブジェクトを作成
chart = ScatterChart()
chart.style = 13  # グラフのスタイルを設定

# データ範囲を指定してグラフを作成
xdata = Reference(ws, min_col=2, min_row=1, max_row=6)
ydata = Reference(ws, min_col=3, min_row=1, max_row=6)
chart.add_data(xdata, titles_from_data=True)
chart.add_data(ydata, titles_from_data=True)

# グラフをワークシートに追加
ws.add_chart(chart, "E1")

# エクセルファイルを保存
wb.save('sample.xlsx')

これで、Pythonを使用してエクセルワークシートに作成したグラフを保存し、表示する方法がわかりました。

目次から探す