PythonのopenpyxlモジュールでExcelシートにグラフを作成する方法
openpyxlは、Excelファイルに対して読み書き、算術演算、グラフのプロットなど、さまざまな操作を行うことができるPythonライブラリです。本記事では、openpyxlのchartサブモジュールを活用して、Excelシートにバブルチャートを作成・挿入する方法を、実際のコード例とともにわかりやすく解説します。
バブルチャート作成のサンプルコード
以下のコードでは、ワークブックを作成してデータを書き込んだ後、そのデータをもとにバブルチャートを生成し、Excelファイルとして保存しています。
# openpyxlモジュールをインポート
import openpyxl
# openpyxl.chartサブモジュールからBubbleChart、Reference、Seriesクラスをインポート
from openpyxl.chart import BubbleChart, Reference, Series
# Workbook()関数を呼び出して、新しい空のワークブックオブジェクトを作成
wb = openpyxl.Workbook()
# active属性からアクティブなシートを取得
sheet = wb.active
rows = [
("Number of Products", "Sales in USD", "Market share"),
(14, 12200, 15),
(20, 60000, 33),
(18, 24400, 10),
(22, 32000, 42),
]
# 各行の内容をアクティブシートの1列目、2列目、3列目に順に書き込む
for row in rows:
sheet.append(row)
# BubbleChartクラスのオブジェクトを作成
chart = BubbleChart()
# プロット用のデータ参照を作成
xvalues = Reference(sheet, min_col=1, min_row=2, max_row=5)
yvalues = Reference(sheet, min_col=2, min_row=2, max_row=5)
size = Reference(sheet, min_col=3, min_row=2, max_row=5)
# 1つ目のデータ系列を作成
series = Series(values=yvalues, xvalues=xvalues, zvalues=size, title="2013")
# チャートオブジェクトに系列データを追加
chart.series.append(series)
# グラフのタイトルを設定
chart.title = " BUBBLE-CHART "
# X軸のタイトルを設定
chart.x_axis.title = " X_AXIS "
# Y軸のタイトルを設定
chart.y_axis.title = " Y_AXIS "
# グラフをシートに追加(グラフの左上隅はセルE2に配置される)
sheet.add_chart(chart, "E2")
# ファイルを保存
wb.save("bubbleChart.xlsx")コードの解説
1. データの準備と書き込み
まずWorkbook()関数で新しいワークブックを作成し、wb.activeでアクティブなシートを取得します。続いて、製品数・売上(USD)・市場シェアの3列からなるデータをappend()メソッドで1行ずつシートに書き込んでいます。
2. グラフに使用するデータ範囲の指定
Referenceクラスを使うことで、シート上のどのセル範囲をグラフのデータとして使うかを指定できます。ここでは、X軸の値に1列目、Y軸の値に2列目、バブルのサイズ(Z値)に3列目のデータ(2行目〜5行目)をそれぞれ割り当てています。
3. データ系列の作成とチャートへの追加
Seriesクラスのオブジェクトを作成し、X値(xvalues)、Y値(values)、バブルサイズ(zvalues)を渡します。title引数には系列名「2013」を指定しています。作成した系列はchart.series.append(series)でチャートオブジェクトに追加されます。
4. タイトル設定とシートへの配置
chart.title、chart.x_axis.title、chart.y_axis.titleに文字列を代入することで、グラフ全体および各軸のタイトルを設定できます。最後にadd_chart()メソッドでグラフをシートに追加し、第2引数の「E2」によってグラフの左上隅がセルE2に配置されるように指定しています。
5. ファイルの保存
wb.save("bubbleChart.xlsx")を実行すると、データとバブルチャートが含まれたExcelファイルが生成されます。保存したファイルをExcelで開くと、セルE2を起点とした位置にバブルチャートが表示されていることを確認できます。
まとめ
このようにopenpyxlを使えば、PythonのコードだけでExcelファイルへのデータ書き込みからグラフの作成・挿入までを自動化できます。バブルチャート以外にも、棒グラフや折れ線グラフ、円グラフなどさまざまな種類のチャートがサポートされているため、レポート作成やデータ分析の自動化に幅広く活用できます。
-
PythonのXlsxWriterモジュールでExcelワークシートにグラフを挿入する方法
Pythonには標準ライブラリ以外にも、個人開発者によって作られた優れた外部ライブラリが数多く存在し、Pythonにさまざまな追加機能をもたらしています。XlsxWriterもそのひとつで、Pythonプログラムのデータを含むExcelファイルを作成できるだけでなく、グラフ(チャート)の作成にも対応しています。 円グラフの作成手順 以下の例では、xlsxwriterを使って円グラフを作成します。処理の流れは以下のとおりです。 まずワークブックを定義し、その後にワークシートを追加します。 次にプロットするデータを定義し、Excelファイルのどの列にデータを書き込むかを指定します。 その列を参照
-
PythonのopenpyxlモジュールでExcelファイルを読み書きする方法【初心者向け完全ガイド】
Pythonには、Excelファイル(.xlsx)を操作するためのopenpyxlという便利なモジュールが用意されています。このモジュールを使えば、Excelファイルの新規作成、データの書き込み・読み取り、シートの追加や管理など、さまざまな操作をプログラムから自動的に行うことができます。 本記事では、openpyxlの基本的な使い方を、実際に動作するサンプルコードとともに順番に解説していきます。 openpyxlのインストール方法 openpyxlは標準ライブラリではないため、まずインストールが必要です。コマンドプロンプト(またはターミナル)で以下のコマンドを実行してください。 pip ins