Excel円グラフ生成は「割合・構成比を一瞬で理解できる資料を自動で作る」ための最強スキル
円グラフは “全体に対する割合” を見せるのに最適 です。
実務でも次のような場面で非常に多く使われます。
- 売上構成比(商品別・店舗別)
- アクセス割合(デバイス別・地域別)
- コスト構成比
- アンケート結果の割合
Python(openpyxl)を使えば、Excelに円グラフを自動生成できます。
初心者でも理解しやすいように、基本から実務テンプレまで丁寧に解説します。
円グラフ作成の基本構造(最重要ポイント)
円グラフは必ず3ステップで作る
- Reference:グラフに使うセル範囲を指定
- PieChart:円グラフ本体を作成
- add_data / set_categories:データとラベルを設定し、シートに配置
この3つを理解すれば、どんな円グラフでも作れます。
基本:円グラフを作る最小コード
データ → 円グラフを作成するシンプルな例
from openpyxl import Workbook
from openpyxl.chart import PieChart, Reference
wb = Workbook()
ws = wb.active
# データ作成
data = [
["項目", "割合"],
["A", 40],
["B", 25],
["C", 20],
["D", 15],
]
for row in data:
ws.append(row)
# ラベル(A2〜A5)
labels = Reference(ws, min_col=1, min_row=2, max_row=5)
# 値(B2〜B5)
values = Reference(ws, min_col=2, min_row=2, max_row=5)
# グラフ作成
chart = PieChart()
chart.title = "サンプル円グラフ"
# データ追加
chart.add_data(values, titles_from_data=False)
chart.set_categories(labels)
# シートに配置
ws.add_chart(chart, "D2")
wb.save("pie_chart.xlsx")
Python深掘りポイント
- 円グラフは set_categories(labels) が必須
add_data(values)だけではラベルが表示されない- 割合を見せる資料で最も使われる
パーセント表示の円グラフ(見やすさUP)
円グラフに割合(%)を表示する
chart.dataLabels = True
Python深掘りポイント
dataLabels=Trueで円グラフに数値が表示される- 割合を見せる資料ではほぼ必須
3D円グラフ(見た目を強調したい場合)
3D円グラフを作る
from openpyxl.chart import PieChart3D
chart = PieChart3D()
chart.title = "3D円グラフ"
chart.add_data(values, titles_from_data=False)
chart.set_categories(labels)
ws.add_chart(chart, "D15")
Python深掘りポイント
- 3Dは見た目が華やか
- プレゼン資料でよく使われる
実務テンプレ①:商品別売上構成比の円グラフ
A列:商品名、B列:売上 の円グラフを作る
from openpyxl import load_workbook
from openpyxl.chart import PieChart, Reference
wb = load_workbook("sales.xlsx")
ws = wb["売上"]
labels = Reference(ws, min_col=1, min_row=2, max_row=20)
values = Reference(ws, min_col=2, min_row=2, max_row=20)
chart = PieChart()
chart.title = "商品別売上構成比"
chart.add_data(values, titles_from_data=False)
chart.set_categories(labels)
chart.dataLabels = True
ws.add_chart(chart, "D2")
wb.save("sales_pie_report.xlsx")
Pythonポイント
- 売上構成比は実務で最も多い円グラフ
dataLabels=Trueで割合が表示されて見やすい
実務テンプレ②:アンケート結果の割合を円グラフ化
A列:回答項目、B列:人数
chart = PieChart()
chart.title = "アンケート結果"
values = Reference(ws, min_col=2, min_row=2, max_row=10)
labels = Reference(ws, min_col=1, min_row=2, max_row=10)
chart.add_data(values)
chart.set_categories(labels)
chart.dataLabels = True
ws.add_chart(chart, "F2")
Pythonポイント
- アンケート集計で非常に使われる
- 円グラフは「割合」を見せるのに最適
実務テンプレ③:グラフ専用シートに円グラフを出力
chart_sheet = wb.create_chartsheet()
chart_sheet.add_chart(chart)
wb.save("pie_chart_only.xlsx")
Pythonポイント
- グラフだけを大きく表示したいときに便利
- プレゼン資料向け
Excel円グラフ生成を業務で設計するときの視点
- Reference → Chart → add_data の3ステップが最重要
- 円グラフは「割合・構成比」を見せるのに最適
- ラベル(項目名)を set_categories で必ず設定
- dataLabels=True で見やすさが大幅UP
- 3D円グラフはプレゼン資料向け
- データ更新だけでグラフが自動反映される
