# 图表规范(原生可编辑) 所有图表必须使用 `python-pptx` 原生 `Chart` 对象创建,数据写入图表内嵌 Excel 工作簿,确保用户在 PowerPoint 中可右键 → 编辑数据。 ## 支持的图表类型 | 图表类型 | XL_CHART_TYPE | 值 | 使用场景 | |---------|---------------|-----|---------| | 簇状柱形图 | COLUMN_CLUSTERED | 51 | 区域分布对比、团队追踪 | | 簇状条形图 | BAR_CLUSTERED | 57 | 国家排名、负责人排名、状态漏斗(横向) | | 折线图(带标记) | LINE_MARKERS | 65 | 多日趋势、30日追踪、7日走势 | | 环形图 | DOUGHNUT | -4120 | 状态分布、区域占比 | | 表格 | TABLE | 19 | 明细数据、TOP列表、状态变化 | ## 配色映射 | 用途 | 色值 | 说明 | |------|------|------| | 系列1主色 | `#5B9BD5` | 蓝色,主要数据系列 | | 系列2对比 | `#ED7D31` | 橙色,对比/参考系列 | | 系列3辅助 | `#A5A5A5` | 灰色,辅助线或第三系列 | | 正增长 | `#70AD47` | 绿色,用于涨幅标记 | | 负增长 | `#C5504B` | 红色,用于跌幅标记 | | 警告 | `#ED7D31` | 橙色,异常告警 | ## 通用图表样式 1. **标题**:图表本身不设置标题(页面顶部已有文本框标题) 2. **图例**:单系列时隐藏;多系列时放置于底部 3. **数据标签**:显示数值,字体 Arial 10pt,颜色 `#333333` 4. **网格线**:仅保留水平主网格线,颜色 `#D9D9D9`,宽度 0.75pt 5. **坐标轴**:无填充、无线条;标签字体 10pt,颜色 `#666666` 6. **绘图区**:无填充、无边框 7. **图表区**:无填充、无边框 ## 图表数据绑定 ```python from pptx.chart.data import ChartData from pptx.enum.chart import XL_CHART_TYPE chart_data = ChartData() chart_data.categories = ['亚洲', '非洲', '拉美', '中东', '欧洲'] chart_data.add_series('订单量', (2160, 1840, 1743, 878, 247)) chart = slide.shapes.add_chart( XL_CHART_TYPE.COLUMN_CLUSTERED, left, top, width, height, chart_data ).chart ``` 数据自动写入 PPT 内嵌的 Excel 工作簿,用户可在 PowerPoint 中直接编辑。 ## 特殊配置 ### 条形图逆序(最大值在顶部) ```python chart = slide.shapes.add_chart(XL_CHART_TYPE.BAR_CLUSTERED, ...).chart chart.category_axis.reverse_order = True ``` ### 环形图中心空白 ```python chart = slide.shapes.add_chart(XL_CHART_TYPE.DOUGHNUT, ...).chart chart.plots[0].hole_size = 0.5 # 50% 中心空白 ``` ### 折线图标记样式 ```python chart = slide.shapes.add_chart(XL_CHART_TYPE.LINE_MARKERS, ...).chart series = chart.series[0] series.marker.size = 7 series.marker.style = XL_MARKER_STYLE.CIRCLE ```