chart-specs.md 2.6 KB

图表规范(原生可编辑)

所有图表必须使用 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. 图表区:无填充、无边框

图表数据绑定

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 中直接编辑。

特殊配置

条形图逆序(最大值在顶部)

chart = slide.shapes.add_chart(XL_CHART_TYPE.BAR_CLUSTERED, ...).chart
chart.category_axis.reverse_order = True

环形图中心空白

chart = slide.shapes.add_chart(XL_CHART_TYPE.DOUGHNUT, ...).chart
chart.plots[0].hole_size = 0.5  # 50% 中心空白

折线图标记样式

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