
インフォグラフィック自動化の背景
- インフォグラフィック自動生成の完全自動化を実現するPythonスクリプトを5ステップで解説
- 「デザイナー外注費・手動作成の工数」という課題を根本から解消する
- Claude Codeへの自然言語指示だけでスクリプトを生成できる
- 月・週・日単位の定期実行で完全無人化を実現する方法も紹介
以下のステップを順番に実行することで、今日から業務自動化を始められます。コピーして使えるコードと、Claude Codeへの指示文をセットで解説します。
データをビジュアルで伝えるインフォグラフィックは、手作業での作成に時間がかかります。Claude Code + python-pptx を使えば、数値データを読み込んでインフォグラフィックスライドを自動生成できます。広報・IR・社内報告でのビジュアル資料作成時間を大幅に削減します。
ステップ1:KPIサークルと数値ブロックを自動配置
大きな数字+アイコン付きのインフォグラフィックスライドとして
python-pptxで自動生成するスクリプトを作成して
from pptx import Presentation
from pptx.util import Inches, Pt, Emu
from pptx.dml.color import RGBColor
from pptx.enum.text import PP_ALIGN
prs = Presentation()
prs.slide_width = Inches(13.33)
prs.slide_height = Inches(7.5)
slide = prs.slides.add_slide(prs.slide_layouts[6]) # 白紙
ORANGE = RGBColor(0xE8, 0x52, 0x0A)
DARK = RGBColor(0x1A, 0x1A, 0x2E)
GRAY = RGBColor(0xF2, 0xF2, 0xF2)
# 背景
bg = slide.shapes.add_shape(1, 0, 0, prs.slide_width, prs.slide_height)
bg.fill.solid(); bg.fill.fore_color.rgb = GRAY
bg.line.fill.background()
# タイトル
title = slide.shapes.add_textbox(Inches(0.5), Inches(0.3), Inches(12), Inches(0.7))
tf = title.text_frame
tf.text = "2025年度 Q3 KPIダッシュボード"
tf.paragraphs[0].runs[0].font.size = Pt(24)
tf.paragraphs[0].runs[0].font.bold = True
tf.paragraphs[0].runs[0].font.color.rgb = DARK
# KPIカード x3
kpis = [
{"icon": "💰", "label": "売上高", "value": "¥384M", "sub": "目標比 +8%", "x": 0.5},
{"icon": "👥", "label": "顧客数", "value": "2,847", "sub": "前期比 +12%", "x": 4.8},
{"icon": "⭐", "label": "満足度", "value": "4.7", "sub": "5点満点", "x": 9.1},
]
for kpi in kpis:
# カード背景
card = slide.shapes.add_shape(1, Inches(kpi["x"]), Inches(1.3),
Inches(3.7), Inches(4.5))
card.fill.solid(); card.fill.fore_color.rgb = RGBColor(0xFF, 0xFF, 0xFF)
card.line.color.rgb = RGBColor(0xE0, 0xE0, 0xE0)
# アクセントバー
bar = slide.shapes.add_shape(1, Inches(kpi["x"]), Inches(1.3), Inches(3.7), Inches(0.1))
bar.fill.solid(); bar.fill.fore_color.rgb = ORANGE
bar.line.fill.background()
# アイコン
icon_box = slide.shapes.add_textbox(Inches(kpi["x"]+0.1), Inches(1.5), Inches(3.5), Inches(0.8))
icon_box.text_frame.text = kpi["icon"]
icon_box.text_frame.paragraphs[0].runs[0].font.size = Pt(32)
icon_box.text_frame.paragraphs[0].alignment = PP_ALIGN.CENTER
# 数値
val_box = slide.shapes.add_textbox(Inches(kpi["x"]+0.1), Inches(2.4), Inches(3.5), Inches(1.2))
val_tf = val_box.text_frame
val_tf.text = kpi["value"]
run = val_tf.paragraphs[0].runs[0]
run.font.size = Pt(36); run.font.bold = True; run.font.color.rgb = DARK
val_tf.paragraphs[0].alignment = PP_ALIGN.CENTER
# ラベル
lbl_box = slide.shapes.add_textbox(Inches(kpi["x"]+0.1), Inches(3.7), Inches(3.5), Inches(0.5))
lbl_tf = lbl_box.text_frame
lbl_tf.text = kpi["label"]
lbl_tf.paragraphs[0].runs[0].font.size = Pt(14)
lbl_tf.paragraphs[0].runs[0].font.color.rgb = RGBColor(0x80, 0x80, 0x80)
lbl_tf.paragraphs[0].alignment = PP_ALIGN.CENTER
# サブテキスト
sub_box = slide.shapes.add_textbox(Inches(kpi["x"]+0.1), Inches(4.3), Inches(3.5), Inches(0.4))
sub_tf = sub_box.text_frame
sub_tf.text = kpi["sub"]
sub_tf.paragraphs[0].runs[0].font.size = Pt(11)
sub_tf.paragraphs[0].runs[0].font.color.rgb = ORANGE
sub_tf.paragraphs[0].alignment = PP_ALIGN.CENTER
prs.save("インフォグラフィック.pptx")
print("KPIインフォグラフィック生成完了")
3つのKPIカードが均等配置されたインフォグラフィックスライドを自動生成。デザイン作業(2時間)がスクリプト実行5秒に。
KPIレポートのスライドを毎月デザインツールで一から作成。数値の更新と再デザインに半日以上かかっていた。
JSONデータをpython-pptxに渡すだけでKPIカード・ドーナツ・棒グラフを自動配置。月次更新が数秒に。
ステップ2:円グラフインフォグラフィックを自動生成
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.chart.data import ChartData
from pptx.enum.chart import XL_CHART_TYPE
from pptx.dml.color import RGBColor
prs = Presentation()
prs.slide_width = Inches(13.33)
prs.slide_height = Inches(7.5)
slide = prs.slides.add_slide(prs.slide_layouts[6])
# ドーナツチャートデータ
chart_data = ChartData()
chart_data.categories = ["営業部", "製品部", "管理部", "開発部", "その他"]
chart_data.add_series("売上構成", [38, 27, 15, 12, 8])
chart = slide.shapes.add_chart(
XL_CHART_TYPE.DOUGHNUT, Inches(0.5), Inches(1.0),
Inches(6.0), Inches(6.0), chart_data
).chart
chart.has_legend = True
chart.has_title = True
chart.chart_title.text_frame.text = "部門別売上構成比"
# 凡例・テキストを右側に配置
items = [("営業部","38%","#E8520A"), ("製品部","27%","#404040"),
("管理部","15%","#BFBFBF"), ("開発部","12%","#808080"), ("その他","8%","#F2F2F2")]
for i, (label, pct, color) in enumerate(items):
box = slide.shapes.add_textbox(Inches(7.0), Inches(1.5 + i*0.9), Inches(5.5), Inches(0.7))
tf = box.text_frame
tf.text = f"● {label} {pct}"
tf.paragraphs[0].runs[0].font.size = Pt(14)
prs.save("円グラフインフォグラフィック.pptx")
print("ドーナツグラフスライド生成完了")
ドーナツグラフ+凡例テキストのインフォグラフィックを自動生成。広報資料・IR資料作成が高速化。
ステップ3:データ駆動で複数スライドを一括生成
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor
import json
with open("infographic_data.json", encoding="utf-8") as f:
slides_data = json.load(f)
prs = Presentation()
prs.slide_width = Inches(13.33)
prs.slide_height = Inches(7.5)
ORANGE = RGBColor(0xE8, 0x52, 0x0A)
DARK = RGBColor(0x1A, 0x1A, 0x2E)
for data in slides_data:
slide = prs.slides.add_slide(prs.slide_layouts[6])
# タイトル
tb = slide.shapes.add_textbox(Inches(0.5), Inches(0.3), Inches(12), Inches(0.7))
tb.text_frame.text = data["title"]
tb.text_frame.paragraphs[0].runs[0].font.size = Pt(22)
tb.text_frame.paragraphs[0].runs[0].font.bold = True
# KPI値を自動配置
for i, kpi in enumerate(data["kpis"]):
x = 0.5 + i * 4.2
box = slide.shapes.add_textbox(Inches(x), Inches(1.5), Inches(3.8), Inches(3.0))
tf = box.text_frame
tf.text = kpi["value"]
tf.paragraphs[0].runs[0].font.size = Pt(40)
tf.paragraphs[0].runs[0].font.bold = True
prs.save("一括インフォグラフィック.pptx")
print(f"{len(slides_data)}スライドを一括生成")
JSONデータを差し替えるだけで複数スライドを一括生成。月次レポートの資料作成を完全自動化。
このシステムが解決する課題
データを視覚的に伝わるインフォグラフィックに変換。この自動化が特に効果的な場面と、解決できる課題を整理します。
- デザインの知識がなく、データを視覚的にわかりやすく表現する方法がわからない
- Canvaや専門デザインツールを学ぶ時間がなく、テキストだけのスライドになりがち
- SNS・プレスリリース向けのインフォグラフィックを外注すると費用が高い
- データが更新されるたびにインフォグラフィックを作り直す手間が大変
実務での活用シナリオ
導入前後の効果比較
データをテキストと棒グラフだけのシンプルなスライドで表現していた。視覚的なインパクトが弱く、受け取り側の記憶への定着率も低かった。外部のデザイナーに依頼すると1枚あたり数万円かかっていた。
python-pptx + matplotlibで数値・アイコン・カラーバーを組み合わせたインフォグラフィックを自動生成。データを更新して再実行するだけで最新のインフォグラフィックが完成。
導入のポイントと注意事項
- アイコンはemoji(Unicode絵文字)や無料アイコンフォント(Font Awesome)の画像を使うと、デザインツールなしでもビジュアルが豊かになる
- 数字は大きく(60pt以上)、単位を小さく表示するだけで「インフォグラフィックらしい」見た目になる
- カラーパレットは2〜3色に絞り、メインカラー・サブカラー・アクセントカラーの役割を明確にする
- インフォグラフィックのサイズはSNS用(1080×1080px正方形)とプレゼン用(1280×720px)を分けて自動生成するとそのまま使用できる
よくある質問(FAQ)
まとめ
✅ KPIカード付きインフォグラフィックを自動生成
✅ ドーナツグラフ+テキストのビジュアルスライドを自動作成
✅ JSONデータ駆動で複数スライドを一括生成
✅ デザイン作業時間を大幅短縮
どんな現場で使われているか:活用シナリオ
実装で押さえるべき重要ポイント
- 1
アイコンはemoji→画像変換で簡単に追加:Pillowでemoji文字を高解像度PNG画像に変換してPPTに挿入することで、有料アイコンサービス不要でビジュアル豊かなインフォグラフィックを作れます。
- 2
カラーグラデーションは背景シェイプで表現:python-pptxの塗りつぶし設定はグラデーションに限界があります。グラデーション画像を事前にPNGで生成して背景として配置する方法が確実です。
- 3
フォントはWindows標準フォントで互換性を確保:カスタムフォントを使うと他のPCで表示が崩れます。メイリオ・游ゴシック等のWindows標準フォントで統一することで互換性を確保できます。
ビジネスインパクト
この記事のまとめ
- ✅ データからインフォグラフィック形式のPowerPointスライドを自動生成できる
- ✅ ブランドカラー・フォントを統一したビジュアル資料を一括生成できる
- ✅ デザイナー依頼不要で広報・マーケ資料を自動生成できる
- ✅ SNS・社内報・プレゼン向けの複数サイズ版を同時に自動生成できる
関連記事