McKinsey Charts 是一套可直接用于 python-pptx 的图表构建工具,用于生成麦肯锡风格的咨询图表。图表以原生 PowerPoint 图表对象插入,受众可以在 PowerPoint 中编辑数据、更改颜色,或将图表复制到自己的演示文稿中,而不是图片或截图。
主要能力
该技能提供三种常用图表类型:
- bar_callout:当“一个数字”就是故事时使用。适合 TAM、市场规模、人数,以及任何希望用单个高亮柱加大号标注来锚定注意力的场景。示例:“RTD coffee TAM will hit $42.5B by 2028”。
- stacked_bar_over_time:展示随时间变化的构成。适合按业务线划分的收入、按功能划分的使用量、按职能划分的人数,同时展示总量增长与结构变化。示例:“Revenue grew 3x, but enterprise segment grew 7x”。
- waterfall:桥接两个数字。适合收入桥、成本桥、人数变化,以及任何“起点 → 增加 → 减少 → 终点”的叙事。示例:“FY24 → FY25 revenue bridge: $80M → $112M”。
设计选择(有意固定,不可配置)
- 标题是结论性主张,而不是标签。“RTD market will hit $42.5B by 2028”优于“Market Size”。
- 仅一个高亮色,其余全部为灰色。麦肯锡风格的演示文稿不会五颜六色,图表只指向一件事。
- 无网格线、无图表边框,多系列以外不加图例。更少的墨水带来更强的信号。
- 底部始终有浅灰色斜体来源行。
- 统一使用单一字体 Inter,字号一致:标题 20pt、坐标轴 10pt、来源 9pt。
使用方式
在 Python 中导入相关函数:
from pptx import Presentation from pptx.util import Inches from charts import add_bar_callout, add_stacked_bar_over_time, add_waterfall, new_deck
prs = new_deck() # 16:9 with title slide layout slide = prs.slides.add_slide(prs.slide_layouts[6]) # blank
add_bar_callout( slide, title="RTD coffee TAM will hit $42.5B by 2028", categories=["2023", "2024", "2025", "2026", "2027", "2028"], values=[28.1, 30.8, 33.6, 36.5, 39.4, 42.5], highlight_index=5, # which bar to highlight (last one here) callout="$42.5B\n2028 TAM", y_label="USD, billions", source="Euromonitor 2025; Mintel; team analysis", )
prs.save("output.pptx")
另外两种图表使用相同模式:
add_stacked_bar_over_time( slide, title="Enterprise segment now drives 62% of revenue, up from 18% in 2021", categories=["2021", "2022", "2023", "2024", "2025"], series=[ ("SMB", [12, 14, 15, 16, 18]), ("Mid-market", [8, 12, 16, 22, 28]), ("Enterprise", [4, 10, 22, 38, 74]), ], highlight_series="Enterprise", y_label="Revenue, $M", source="Internal financials; FY21–FY25", )
add_waterfall( slide, title="FY24 → FY25 revenue bridge: $80M → $112M, with new logos doing the heavy lifting", labels=["FY24", "New logos", "Expansion", "Churn", "Price", "FY25"], values=[80.0, 24.0, 12.0, -8.0, 4.0, 112.0], kinds=["start", "pos", "pos", "neg", "pos", "total"], y_label="Revenue, $M", source="Internal financials; FY24–FY25", )
测试方式
python3 test_charts.py open test_output.pptx
测试脚本会为每种图表类型生成一张带有真实示例数据的幻灯片。在 PowerPoint 或 Keynote 中打开,右键任意图表 → “Edit Data”,即可确认它是原生图表而非图片。
适用场景
适合需要以麦肯锡风格呈现单一数字、随时间变化的构成或数字桥接的咨询与商业演示场景,并且希望图表在 PowerPoint 中保持可编辑。
限制
以下情况不应使用该技能:
- 需要分布图(应使用直方图或箱线图,这不是麦肯锡风格的常用图表)。
- 需要散点图或象限图(2x2 组合图/投资组合图属于另一项技能)。
- 堆叠超过 5 个系列(应拆分为小倍数图,单张图表无法承载如此多的信息)。