返回 Skill 列表
extension
分类: 数据与分析无需 API Key

通用业务图表

上传 CSV/JSON/Excel,自动生成交互式 ECharts 折线、面积、柱状、横向柱、堆叠柱、饼图、环形、散点共 8 类图表,输出独立 HTML 可保存图片。本地运行,不上传数据。覆盖运营周报、财务汇报、电商数据、销售占比、趋势分析等通用业务场景。

person作者: user_8ca2df90hubcommunity

通用图表生成器

把任意一份业务表格,变成一张能看、能交互、能导图的漂亮图表。本技能专为「运营 / 财务 / 电商 / 销售 / 汇报」等通用场景设计,不绑定某个行业模板,数据给你、类型你定、出图即用。

所有图表库(ECharts)已内联进生成文件,断网也能打开,双击浏览器即可查看,右上角「保存图片」导出 PNG。

一、支持的图表类型(8 类)

| 类型值 | 中文 | 适合的数据 | 典型用途 | |--------|------|-----------|----------| | line | 折线图 | 时间/类别 + ≥2 数值列 | 多指标趋势对比(营收 vs 利润) | | area | 面积图 | 同上 | 趋势 + 体量感(累计增长) | | bar | 柱状图 | 类别 + 1 数值列 | 大小对比(各渠道销量) | | hbar | 横向柱状图 | 类别名很长时 | 省份/长名称排名 | | stacked_bar | 堆叠柱状图 | 类别 + ≥2 数值列 | 总量构成(各品类按月堆叠) | | pie | 饼图 | 名称 + 1 数值列 | 占比(品类销售份额) | | doughnut | 环形图 | 名称 + 1 数值列 | 占比 + 中间留白放结论 | | scatter | 散点图 | 2 数值列 | 相关性/分布(单价 vs 销量) |

选型的「单一事实源」见 references/图表类型指南.md,命令参数与该文件严格一致。

二、适用业务场景

  • 运营周报/月报:多指标趋势(折线/面积)——曝光、点击、转化逐周走线。
  • 财务汇报:占比(饼图/环形)——成本结构、收入来源构成。
  • 电商数据:对比(柱状/堆叠)——各 SKU、各平台销量对比。
  • 销售漏斗:排名(横向柱)——各环节转化人数/金额。
  • 趋势分析:相关性(散点)——投放金额与 ROI 的关系。
  • 任何「表格想一眼看懂」的需求:把数字变成图,汇报、发群、贴文档都好用。

三、输入数据格式与字段约定

支持三种输入,详见 references/数据格式.md

  1. CSV(推荐,最稳):第一行表头,后续数据行;中文列名直接用。
  2. JSON:两种形态——对象数组 [{ "月份":"1月","营收":100 }, ...];或 { "categories":[...], "series":{ "营收":[...] } }
  3. xlsx:可选,需 pip install openpyxl,读第一个工作表。

字段约定(建议,非强制)

  • 类别/时间列放第一列,数值列随后。
  • 列名用中文最直观(如「月份」「营收」「渠道」)。
  • 数值里的千分位逗号、百分号会自动清洗,无需预处理。

最小可用示例(CSV):

月份,营收,利润
1月,120,30
2月,150,42
3月,180,55

四、使用方法

标准流程

  1. 用户上传或给出表格文件路径。
  2. 和用户确认:图表类型、X 轴列(类别/时间)、Y 轴数值列(可多个)。
  3. 运行 scripts/chart_generator.py 生成 HTML。
  4. 把输出 HTML 路径告诉用户,提示双击打开 / 保存图片。

命令模板

# 基础:类别 + 单数值 → 柱状图
python {skill_base}/scripts/chart_generator.py 数据.csv --x 月份 --y 营收 --title "月度营收" --out 营收图.html

# 多系列趋势:时间 + 多数值 → 折线
python {skill_base}/scripts/chart_generator.py 数据.csv --x 月份 --y 营收,利润 --type line --title "营收与利润趋势" --out 趋势图.html

# 占比:名称 + 数值 → 环形
python {skill_base}/scripts/chart_generator.py 数据.csv --x 渠道 --y 销售额 --type doughnut --title "渠道占比" --out 占比图.html

# 自动选型(按数据形态猜类型,省去 --type)
python {skill_base}/scripts/chart_generator.py 数据.csv --auto --out 自动图.html

# 查看支持的类型
python {skill_base}/scripts/chart_generator.py --list-types

{skill_base} 是本技能在运行环境中的根目录,AI 执行前需替换为实际路径(如 ~/.workbuddy/skills/universal-charts)。

参数说明

| 参数 | 必填 | 说明 | |------|------|------| | input | 是 | 输入文件:CSV / JSON(xlsx 需 openpyxl) | | --x | 否 | 类别/时间/X 轴列名;省略时自动取第一非数值列 | | --y | 否 | 数值/Y 轴列名,多个用逗号分隔;省略时自动取全部数值列 | | --type | 否 | 图表类型,见第一节 8 类;省略且不用 --auto 时按 auto 选型 | | --title | 否 | 图表标题,默认「数据图表」 | | --out | 否 | 输出 HTML 路径,默认 chart.html | | --auto | 否 | 按数据形态自动选型(≥2 数值列→折线,否则柱状) | | --list-types | 否 | 仅列出支持的图表类型后退出 |

五、自动选型逻辑

不指定 --type 时:

  • 数值列 ≥ 2 → line(多指标看趋势)
  • 数值列 = 1 且有类别列 → bar(看大小对比)
  • 饼图/散点需显式指定 --type(占比/相关性意图明确)

六、配色方案

出图配色遵循 references/配色方案.md:默认商务蓝橙板,提供明快板、财务板、禁用色清单。用户说「换个颜色」「要喜庆一点」「财务风格」时按该文件切换,不凭空配色。

七、场景模板

常见汇报场景的「现成命令 + 配色 + 标题」速查见 references/场景模板.md(运营周报折线、销售占比环形、电商对比柱、趋势面积、渠道排名横柱等)。用户给的数据贴近某模板时,直接套用并稍作调整,不必每次重新设计。

八、数值清洗规则(脚本自动处理)

  • 千分位逗号 1,2001200、百分号 50%50 自动去除。
  • 空值、-NaN、空字符串 → 视为缺失,该点不画。
  • CSV 编码按 utf-8-sig → gbk → utf-8 顺序回退,中文一般无需指定。
  • 非数值内容(如「暂无」「—」)不会报错,按缺失处理。

九、异常处理

| 现象 | 处理 | |------|------| | 输入文件不存在 | 核对 --input 路径,建议用绝对路径 | | 列不存在:xxx | 先不加 --x/--y 跑一次,看输出的 columns 真实列名,照抄 | | 不支持的类型 | 用 --list-types 看支持列表,检查拼写 | | xlsx 读不了 | pip install openpyxl,或先转 CSV | | 数据为空 | 检查文件是否有数据行、表头是否正确 | | 生成失败 | 最多重试 2 次;仍失败把错误原样告诉用户,不编造图表 |

十、进度反馈

  • 读取数据:「正在读取表格数据…」
  • 生成图表:「正在生成 ECharts 图表…」
  • 完成:「图表已生成,路径:xxx.html,双击即可查看,右上角可保存图片」

十一、输出说明

  • 每个输出是一个独立 .html 文件,ECharts 库已内联其中,断网也能打开
  • 浏览器打开后:右上角工具栏「保存图片」可导出 PNG(建议 2x 屏或放大后保存更清晰)。
  • 标题、坐标轴、图例均为中文友好,直接用于汇报/文档/群发。
  • 需要多张图(如一份周报含趋势+占比):分别生成多个 HTML,或一次性多次调用。

十二、安全与隐私

  • 全部在本地完成:只读你给的表格,只解析数值,只写出 HTML。
  • 不向任何外部地址上传数据,不调用网络请求,不执行数据里的任何代码。
  • ECharts 库以本地 assets/echarts.min.js 形式打包进技能,生成时不发任何网络请求。

十三、不适用场景

  • 实时数据库直连作图:本技能吃静态文件,不支持直连数据库(可先把查询结果导出 CSV 再喂)。
  • 超大规模数据(十万行以上):浏览器渲染会卡,建议先聚合再作图。
  • 地图/地理坐标图:当前 8 类不含地图,需另接地理包。
  • 需要复杂交互仪表盘(下钻/联动筛选):当前为单图输出,多图请多次生成。

十四、出图前自检(质量检查清单)

生成前对照 references/质量检查清单.md 快速过一遍:标题是否点题、类别轴是否可读、数值列是否选对、配色是否贴合场景、缺失值是否预期。确保交出去的图「一眼看懂、不会误导」。

常见误解

  • 「CSV 要整理成标准格式」——不用,脚本自动清洗逗号/百分号/编码,脏数据也能画。
  • 「必须装 ECharts」——不用,库已内联在输出 HTML 里。
  • 「只能画我列的类型」——8 类覆盖绝大多数业务图,特殊图(地图/桑基)暂不在内。