Excel折れ線グラフ生成は「データの変化・推移を一目で理解できる資料を自動で作る」ための最強スキル
折れ線グラフは “時間の流れによる変化” を見せるのに最適 です。
実務でも次のような場面で非常に多く使われます。
- 月次売上の推移
- アクセス数の推移
- 温度・在庫・コストなどの変動
- KPIのトレンド分析
Python(openpyxl)を使えば、Excelに折れ線グラフを自動生成できます。
初心者でも理解しやすいように、基本から実務テンプレまで丁寧に解説します。
折れ線グラフ作成の基本構造(最重要ポイント)
折れ線グラフは必ず3ステップで作る
- Reference:グラフに使うセル範囲を指定
- LineChart:折れ線グラフ本体を作成
- add_data / set_categories:データとラベルを設定し、シートに配置
この3つを理解すれば、どんな折れ線グラフでも作れます。
基本:折れ線グラフを作る最小コード
データ → 折れ線グラフを作成するシンプルな例
from openpyxl import Workbook
from openpyxl.chart import LineChart, Reference
wb = Workbook()
ws = wb.active
# データ作成
data = [
["月", "売上"],
["1月", 100],
["2月", 150],
["3月", 130],
["4月", 180],
]
for row in data:
ws.append(row)
# 値の範囲(B2〜B5)
values = Reference(ws, min_col=2, min_row=2, max_row=5)
# ラベル(A2〜A5)
labels = Reference(ws, min_col=1, min_row=2, max_row=5)
# グラフ作成
chart = LineChart()
chart.title = "売上推移"
# データ追加
chart.add_data(values, titles_from_data=False)
chart.set_categories(labels)
# シートに配置
ws.add_chart(chart, "D2")
wb.save("line_chart.xlsx")
Python深掘りポイント
Referenceがグラフ作成の核set_categories(labels)で横軸ラベルを設定- 折れ線グラフは「推移」を見せるのに最適
複数系列の折れ線グラフ(前年比比較など)
今年と去年の売上推移を1つの折れ線グラフにする
values = Reference(ws, min_col=2, min_row=1, max_col=3, max_row=13)
chart = LineChart()
chart.title = "前年比売上推移"
chart.add_data(values, titles_from_data=True)
labels = Reference(ws, min_col=1, min_row=2, max_row=13)
chart.set_categories(labels)
ws.add_chart(chart, "F2")
Python深掘りポイント
min_col〜max_colを広げると複数系列を一括追加できる- 前年・今年の比較グラフに最適
- 系列名は1行目から自動取得される
マーカー付き折れ線グラフ(見やすさUP)
折れ線に点(マーカー)を付ける
chart = LineChart()
chart.title = "マーカー付き折れ線グラフ"
chart.marker = "circle"
chart.smooth = False # 滑らかにしない
Python深掘りポイント
- マーカーを付けると「どの点がどの値か」が分かりやすい
- プレゼン資料でよく使われる
折れ線を滑らかにする(スムージング)
線を滑らかにする
chart.smooth = True
Python深掘りポイント
- 見た目が柔らかくなり、資料として美しい
- KPI推移などでよく使われる
実務テンプレ①:月次売上の折れ線グラフを自動生成
A列:月、B列:売上 の折れ線グラフ
from openpyxl import load_workbook
from openpyxl.chart import LineChart, Reference
wb = load_workbook("sales.xlsx")
ws = wb["売上"]
chart = LineChart()
chart.title = "月次売上推移"
values = Reference(ws, min_col=2, min_row=1, max_row=13)
labels = Reference(ws, min_col=1, min_row=2, max_row=13)
chart.add_data(values, titles_from_data=True)
chart.set_categories(labels)
ws.add_chart(chart, "D2")
wb.save("sales_report.xlsx")
Pythonポイント
- 月次レポート自動化に最適
- データ更新 → グラフ自動更新が可能
実務テンプレ②:アクセス数の推移グラフ(7日間)
chart = LineChart()
chart.title = "アクセス数推移(7日間)"
values = Reference(ws, min_col=2, min_row=1, max_row=8)
labels = Reference(ws, min_col=1, min_row=2, max_row=8)
chart.add_data(values, titles_from_data=True)
chart.set_categories(labels)
ws.add_chart(chart, "F2")
Pythonポイント
- 日次データの可視化に最適
- 折れ線グラフは変動が分かりやすい
実務テンプレ③:グラフ専用シートに折れ線グラフを出力
chart_sheet = wb.create_chartsheet()
chart_sheet.add_chart(chart)
wb.save("chart_only.xlsx")
Pythonポイント
- グラフだけを大きく表示したいときに便利
- プレゼン資料向け
Excel折れ線グラフ生成を業務で設計するときの視点
- Reference → Chart → add_data の3ステップが最重要
- 折れ線グラフは「推移」を見せるのに最適
- 複数系列は min_col〜max_col を広げるだけ
- マーカーやスムージングで見やすさUP
- データ更新だけでグラフが自動反映される
