Python 業務自動化 | Excel業務自動化:Excel基本操作 - Excel折れ線グラフ生成

Python Python
スポンサーリンク

Excel折れ線グラフ生成は「データの変化・推移を一目で理解できる資料を自動で作る」ための最強スキル

折れ線グラフは “時間の流れによる変化” を見せるのに最適 です。
実務でも次のような場面で非常に多く使われます。

  • 月次売上の推移
  • アクセス数の推移
  • 温度・在庫・コストなどの変動
  • KPIのトレンド分析

Python(openpyxl)を使えば、Excelに折れ線グラフを自動生成できます。
初心者でも理解しやすいように、基本から実務テンプレまで丁寧に解説します。


折れ線グラフ作成の基本構造(最重要ポイント)

折れ線グラフは必ず3ステップで作る

  1. Reference:グラフに使うセル範囲を指定
  2. LineChart:折れ線グラフ本体を作成
  3. 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
  • データ更新だけでグラフが自動反映される

タイトルとURLをコピーしました