# 图表规范（原生可编辑）

所有图表必须使用 `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
```


## 通用图表自动选择（新增）

通用构建器支持自动选择图表类型，根据数据特征和页面场景智能推荐。

### 智能推荐规则

| 数据特征 | 推荐图表 | 原因 |
|---------|---------|------|
| 时间序列 + 数值 | LINE_MARKERS | 展示趋势变化 |
| 1个分类列 + 数值列 | BAR_CLUSTERED | 横向对比排名 |
| 1个分类列（含百分比） | DOUGHNUT | 展示占比结构 |
| 多个数值维度 | COLUMN_CLUSTERED | 多维度对比 |
| 需要展示精确数值 | TABLE | 数据明细 |
| 发现数据分层 | FUNNEL | 漏斗转化 |
| 经纬度数据 | 散点图/气泡图 | 地理分布 |

### 图表质量自检

| 检查项 | 问题 | 修复 |
|--------|------|------|
| 图表刻度异常 | Y轴从非零开始导致误导 | 重置Y轴最小值 |
| 图表无数据 | 数据系列为空 | 跳过该图表插入 |
| 表格列宽不合理 | 列宽与内容不匹配 | 按内容自适应列宽 |
