将数据可视化为图表。当用户需要生成柱状图、折线图、饼图、散点图、雷达图、桑基图、思维导图、流程图等图表时调用此技能,通过 curl 工具调用 AntV API 生成图表图片。产出静态图片 URL(25+ 类型);要本地渲染的信息图/GIF 动画图表用 infographic,要 CSV/JSON→整页报告用 data-report
npx skills add https://github.com/ZJU-REAL/Easel --skill chart-visualization
请根据用户输入的内容,将数据可视化为图表。
三者都能"生成图表",但机制与产物不同,按需求路由:
根据用户的数据特征和需求,选择最合适的图表类型:
line(趋势)或 area(累计趋势);两个不同量纲用 dual-axesbar(横向分类对比)或 column(纵向分类对比);频率分布用 histogrampie(比例构成)或 treemap(层级占比)scatter(相关性)、sankey(流向)或 venn(集合重叠)organization-chart 或 mind-mapradar:多维度对比funnel:流程阶段转化liquid:百分比/进度word-cloud:文本词频boxplot / violin:统计分布network-graph:复杂节点关系fishbone-diagram:因果分析flow-diagram:流程图spreadsheet:结构化数据表或透视表POST https://antv-studio.alipay.com/api/gpt-vis
> 该端点为 AntV/支付宝官方 gpt-vis 公共免费托管服务,无需 key;公共服务可能限流或调整,返回失败时重试或退回本地渲染(infographic 模式 A)。
请求体为 JSON,必须包含 type 和 source: "chart-visualization-skills" 字段。
示例:
curl -X POST https://antv-studio.alipay.com/api/gpt-vis \
-H "Content-Type: application/json" \
-d '{"type":"line","source":"chart-visualization-skills","data":[{"time":"2025-01","value":100}],"title":"示例图表"}'
返回示例:
{"success":true,"resultObj":"https://..."}
将 resultObj 中的 URL 以 Markdown 图片格式输出:!图表
| 分类 | 图表类型 |
|------|---------|
| 比较类 | 条形图(bar)、柱状图(column)、瀑布图(waterfall)、双轴图(dual-axes) |
| 趋势类 | 面积图(area)、折线图(line)、散点图(scatter) |
| 分布类 | 箱线图(boxplot)、直方图(histogram)、小提琴图(violin)、漏斗图(funnel) |
| 占比类 | 饼图(pie)、水波图(liquid)、词云(word-cloud) |
| 层级类 | 组织架构图(organization-chart)、思维导图(mind-map)、矩形树图(treemap)、桑基图(sankey) |
| 关系类 | 关系图(network-graph)、韦恩图(venn) |
| 流程类 | 流程图(flow-diagram)、鱼骨图(fishbone-diagram) |
| 多维类 | 雷达图(radar) |
| 表格类 | 表格/透视表(spreadsheet) |
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| theme | string | "default" | 主题:"default" / "academy" / "dark" |
| width | number | 600 | 图表宽度 |
| height | number | 400 | 图表高度 |
| title | string | "" | 图表标题 |
| style.texture | string | "default" | 纹理:"default" / "rough"(手绘风格) |
带坐标轴的图表还支持:axisXTitle、axisYTitle。
{time: string, value: number, group?: string}[],可选 stack: boolean{category: string, value: number, group?: string}[],可选 group / stack (默认 stack: true){category: string, value: number, group?: string}[],可选 group (默认 true) / stack{x: number, y: number, group?: string}[]{category: string, value: number}[],可选 innerRadius: number (0-1){name: string, value: number, group?: string}[]{category: string, value: number}[]{category: string, value?: number, isTotal?: boolean, isIntermediateTotal?: boolean}[]number[],可选 binNumber: number{category: string, value: number, group?: string}[]{text: string, value: number}[]{source: string, target: string, value: number}[],可选 nodeAlign{name: string, value: number, children?: ...}[] (最深 3 层){sets: string[], value: number, label?: string}[]{nodes: {name: string}[], edges: {source: string, target: string, name?: string}[]}{name: string, children?: ...} (最深 3 层){name: string, description?: string, children?: ...} (最深 3 层),可选 orient: "horizontal"|"vertical"Record<string, string | number>[],可选 rows / columns / values(透视表字段)Take zju-real/chart-visualization from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.