openpyxlライブラリでは、スプレッドシート内のデータに基づいて、棒グラフ、線グラフ、円グラフなどのグラフをプログラムで作成し、シートに追加することができます。この記事では、その基本的な手順を解説します。
1. 準備:データの作成とモジュールのインポート
グラフを作成するには、まずシート上にグラフの元となるデータが必要です。また、openpyxl.chartから、作成したいグラフの種類(例: BarChart)と、グラフのデータを定義するためのReference、Seriesといったクラスをインポートします。
import openpyxl
from openpyxl.chart import BarChart, Reference, Series
# 新しいワークブックを作成
workbook = openpyxl.Workbook()
sheet = workbook.active
# グラフの元となるサンプルデータを書き込む
data = [
('Category', 'Value'),
('A', 20),
('B', 30),
('C', 50),
('D', 40),
]
for row in data:
sheet.append(row)
2. グラフの作成手順
openpyxlでグラフを作成するには、通常、以下の3つのステップを踏みます。
1. Referenceオブジェクトの作成 Referenceオブジェクトは、グラフで使用するデータがシート上のどのセル範囲にあるかを定義します。min_col(開始列)、min_row(開始行)、max_col(終了列)、max_row(終了行)を指定します。
2. Seriesオブジェクトの作成 Seriesオブジェクトは、Referenceオブジェクトで定義したデータ範囲を、グラフ上の一つの系列(データ系列)としてまとめます。title引数で、凡例に表示される系列の名前を設定できます。
3. Chartオブジェクトの作成とシートへの追加 BarChart()やLineChart()などで、作成したい種類のグラフオブジェクトを生成します。.append()メソッドでSeriesオブジェクトを追加し、最後にsheet.add_chart()で、グラフを配置するセルを指定してシートに追加します。
3. 完成したコード
これらのステップを統合した、棒グラフを作成してExcelファイルに保存する完全なコードは以下の通りです。
import openpyxl
from openpyxl.chart import BarChart, Reference, Series
# 新しいワークブックとシートを作成
workbook = openpyxl.Workbook()
sheet = workbook.active
sheet.title = 'ChartSample'
# グラフ用のデータをシートに追加
data_rows = [
('Category', 'Value'),
('A', 20),
('B', 30),
('C', 50),
('D', 40),
]
for row in data_rows:
sheet.append(row)
# 手順1: グラフのデータ範囲を定義するReferenceオブジェクトを作成
# B列の2行目から5行目までのデータを対象とする
ref_obj = Reference(sheet, min_col=2, min_row=2, max_col=2, max_row=5)
# 手順2: データ系列を定義するSeriesオブジェクトを作成
series_obj = Series(ref_obj, title="Sample Series")
# 手順3: 棒グラフオブジェクトを作成し、設定を行う
chart_obj = BarChart()
chart_obj.title = "Sample Bar Chart" # グラフのタイトル
chart_obj.append(series_obj)
# グラフをD2セルを左上隅としてシートに追加
sheet.add_chart(chart_obj, "D2")
# ファイルに保存
workbook.save("chart_example.xlsx")
print("chart_example.xlsx を保存しました。")
このスクリプトを実行すると、chart_example.xlsxというファイルが作成され、シートChartSampleのD2セルの位置に棒グラフが挿入されていることを確認できます。
まとめ
openpyxlでグラフを作成するには、まずReferenceでシート上のデータ範囲を指定し、それをSeriesでデータ系列として定義し、最後に目的のChartオブジェクト(例: BarChart)に系列を追加して、シートに配置するという手順を踏みます。このプロセスにより、数値データから視覚的なグラフを自動で生成するレポート作成などが可能になります。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
