chart-readinglisted
Install: claude install-skill awslew/ds-vision-kit
# chart-reading(场景层:图表数据读取)
把图表图片里的数据提取为结构化 JSON + 人类可读摘要。**诚实标注数据来源**:
图上直接标注的数值 vs 按刻度线估读的近似值——绝不把估读当成精确数字。
## 触发场景
- 柱状图 / 折线图 / 饼图 / 面积图 / 散点图 / 雷达图,需要里面的数值
- "读这个图的数据"、"图表提取"、"把图表转成表格"
## 工作流
**预处理**:最长边 >1400px 先缩到 1400。图表文字若小,先全图读一遍,再对图例/坐标轴
区域 `glance --region` 补读。
**推荐**:图表读取时设 `VISION_TEMPERATURE=0` 提高确定性(在 env 文件加一行
`VISION_TEMPERATURE=0`),跑完可改回。
**Pass 1 — 全图结构化提取**(必做)
```bash
glance "<图>" -q "<图表提取 prompt,见下>"
```
**Pass 2 — 小字/坐标轴/图例补读**(推荐)
```bash
detect "<图>" # 枚举轴刻度、图例、数值标注的位置
glance "<图>" --region X1,Y1,X2,Y2 -q "逐字读出这块区域的所有数字和文字"
```
**Pass 3 — 数据校验自检**(推荐)
```bash
glance "<图>" -q "请逐项说明:哪些数值是图上直接标注的?哪些是你按坐标轴刻度估读的?估读的给出误差估计。"
```
## 图表提取 prompt(喂给 glance 的 -q)
> 你是图表数据提取器。请从这张图表中提取结构化数据,只输出一个 JSON 对象,字段:
> ```json
> {
> "chartType": "bar|line|pie|scatter|area|other",
> "title": "图表标题",
> "xAxis": { "categories": ["..."], "scale": "linear|log|..." },
> "yAxis": { "label": "...", "unit": "...", "min": ..., "max": ... },
> "legend": ["系列名..."],
> "series": [ { "name": "...", "data": [数值...] } ]
> }
> ```
> 规则:
> 1. **数值来源**:优先使用图上直接标注的数值并保持原样(不要四舍五入改写)。若某
> 数值无标注,只能根据坐标轴刻度估读,在该数据点旁标注 `"estimate": true`,并给出
> 估读误差范围,例如 `{"estimate": true, "value": 610, "error": "+/-10"}`
> 2. **禁止编造**:看不清或无法确定的值,用 `null` 并注明 `"uncertain": true`,绝不猜
> 3. 坐标轴范围、刻度间隔、单位、图例必须包含;对数轴要标注 `"scale": "log"`
> 4. 多系列数据逐系列列出,保持顺序
## 输出格式
```markdown
## 图表数据读取结果
**图表类型**:<bar/line/pie/...>
**标题**:<...> **单位**:<...>
### 数据(JSON)
```jso