chart-visualization

community

将数据可视化为图表。当用户需要生成柱状图、折线图、饼图、散点图、雷达图、桑基图、思维导图、流程图等图表时调用此技能,通过 curl 工具调用 AntV API 生成图表图片

>_antvis/chart-visualization-skills/skills/chart-visualization·commit 5d6306b

name: chart-visualization description: 将数据可视化为图表。当用户需要生成柱状图、折线图、饼图、散点图、雷达图、桑基图、思维导图、流程图等图表时调用此技能,通过 curl 工具调用 AntV API 生成图表图片

请根据用户输入的内容,将数据可视化为图表。

步骤

  1. 分析用户数据和需求,选择最合适的图表类型
  2. 构造符合规范的 JSON 请求体
  3. 使用 curl 工具调用 API 生成图表图片
  4. 将返回的图片 URL 以 Markdown 图片格式输出

图表选择指南

根据用户的数据特征和需求,选择最合适的图表类型:

  • 时间序列:用 line(趋势)或 area(累计趋势);两个不同量纲用 dual-axes
  • 比较类:用 bar(横向分类对比)或 column(纵向分类对比);频率分布用 histogram
  • 占比类:用 pie(比例构成)或 treemap(层级占比)
  • 关系与流程:用 scatter(相关性)、sankey(流向)或 venn(集合重叠)
  • 层级与树形:用 organization-chartmind-map
  • 专用类型
    • radar:多维度对比
    • funnel:流程阶段转化
    • liquid:百分比/进度
    • word-cloud:文本词频
    • boxplot / violin:统计分布
    • network-graph:复杂节点关系
    • fishbone-diagram:因果分析
    • flow-diagram:流程图
    • spreadsheet:结构化数据表或透视表

API 接口

POST https://antv-studio.alipay.com/api/gpt-vis

请求体为 JSON,必须包含 typesource: "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 图片格式输出:![图表](URL)

支持的图表类型

分类图表类型
比较类条形图(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)

通用可选参数

参数类型默认值说明
themestring"default"主题:"default" / "academy" / "dark"
widthnumber600图表宽度
heightnumber400图表高度
titlestring""图表标题
style.texturestring"default"纹理:"default" / "rough"(手绘风格)

带坐标轴的图表还支持:axisXTitle、axisYTitle。

各图表 data 格式

  • area / line: {time: string, value: number, group?: string}[],可选 stack: boolean
  • bar: {category: string, value: number, group?: string}[],可选 group / stack (默认 stack: true)
  • column: {category: string, value: number, group?: string}[],可选 group (默认 true) / stack
  • scatter: {x: number, y: number, group?: string}[]
  • pie: {category: string, value: number}[],可选 innerRadius: number (0-1)
  • radar: {name: string, value: number, group?: string}[]
  • funnel: {category: string, value: number}[]
  • waterfall: {category: string, value?: number, isTotal?: boolean, isIntermediateTotal?: boolean}[]
  • dual-axes: categories: string[], series: {type: "column"|"line", data: number[], axisYTitle?: string}[]
  • histogram: number[],可选 binNumber: number
  • boxplot / violin: {category: string, value: number, group?: string}[]
  • liquid: percent: number (0-1),可选 shape: "circle"|"rect"|"pin"|"triangle"
  • word-cloud: {text: string, value: number}[]
  • sankey: {source: string, target: string, value: number}[],可选 nodeAlign
  • treemap: {name: string, value: number, children?: ...}[] (最深 3 层)
  • venn: {sets: string[], value: number, label?: string}[]
  • network-graph / flow-diagram: {nodes: {name: string}[], edges: {source: string, target: string, name?: string}[]}
  • fishbone-diagram / mind-map: {name: string, children?: ...} (最深 3 层)
  • organization-chart: {name: string, description?: string, children?: ...} (最深 3 层),可选 orient: "horizontal"|"vertical"
  • spreadsheet: Record<string, string | number>[],可选 rows / columns / values(透视表字段)