根据数据类型智能选择图表,按统一规范生成 Python matplotlib 代码。三套风格均按真实报告视觉提取并可复刻。
references/chart_selection.md 匹配最佳图表类型examples/ 中找最接近的模板脚本,直接照着改references/visualization_spec.md| # | 风格 | 适用场景 | 主色 |
|---|---|---|---|
| --- | ------ | --------- | ------ |
| 1 | BCG(默认) | 通用数据分析、研究报告 | 绿色 #2ca02c |
| 2 | The Economist | 媒体发布、公开报告 | 红线 #E3120B + 蓝 #006BA2 |
| 3 | McKinsey | 咨询汇报、高管演示 | 亮青 #2CBDEF + 浅灰 #D4D4D4 |
所有示例都是完整可运行的脚本,改数据即用。
| 脚本 | 风格 | 图表类型 | 参考 |
|---|---|---|---|
| ------ | ------ | --------- | ------ |
bcg_hbar.py | BCG | 水平柱状图 | 通用调研报告 |
economist_hbar.py | Economist | 水平条形图 | 类别排行对比 |
economist_line.py | Economist | 折线图(时间序列) | 多系列趋势,重点上色 |
mckinsey_grouped_vbar.py | McKinsey | 分组垂直柱 | Exhibit 7 样式 |
mckinsey_grouped_hbar.py | McKinsey | 分组水平条 | Exhibit 4 样式 |
mckinsey_stack100.py | McKinsey | 100% 堆叠单条 | Exhibit 1 样式(Likert-scale) |
| 数据类型 | 推荐图表 |
|---|---|
| --------- | --------- |
| 趋势变化 | Line Chart |
| 类别比较 | Bar Chart |
| 占比分布 (≤5项) | Pie/Donut |
| 占比分布 (>5项) | Stacked Bar |
| Top vs Others 对比 | 分组柱状图(McKinsey 标配) |
| Likert-scale 分布 | 100% 堆叠单条(渐变色) |
| 相关性 | Scatter Plot |
| 层级结构 | Treemap |
完整 25 种数据类型映射见 references/chart_selection.md。
#2ca02c(绿),无渐变(N=X)#E3120B + 左上角红色方块 tag,都用 fig.transFigure + clip_on=False(禁用 fig.add_axes)LEFT_X=0.14#006BA2,灰化对照 #758D99blended_transform_factory(fig.transFigure, ax.transData) 对齐,否则会超出 LEFT_X 左端#2CBDEF + 浅灰 #D4D4D4 二元对照(非单色高亮其他灰化)width=0.32~0.38)Source: 或"资料来源:"fig.add_axes(会与布局系统冲突)。Economist 的红线/tag 用 ax.plot + mpatches.Rectangle 配 fig.transFigure + clip_on=False。ax.set_ylabel 放中文单位(会伸出 LEFT_X 左侧破坏对齐)。y 方向单位写进副标题;set_xlabel 可用(在 x 轴下方居中)。set_xlabel。完整规范(三套共享工具函数 + 所有代码模板)见 references/visualization_spec.md。
FontProperties 显式设置(/System/Library/Fonts/STHeiti Light.ttc)(N=X);McKinsey 标题是结论句 + "Exhibit X"编号;Economist 标题是描述性短句{:.1f}% 或 {:.2f}(看量级)共 1 个版本