Back to skills
extension
Category: Data & AnalyticsNo API key required

周报数据图表自动生成

适用场景 周报/月报要配图,打开 Excel 调图表调半小时,导出还糊。本技能输入一组数据(如每日 DAU、每周 GMV、各渠道转化率),一键生成周报级质感的图表(SVG 矢量图)+ 一句可直接粘贴的结论句。SVG 放大不糊、可直接插入在线文档/浏览器另存,零依赖任何绘图库。 核心能力 三种图型:柱状图(对比)/ 折线图(趋势)/ 横向条形图(排名),按数据形态自动推荐。 自动结论句:识别最大值、最小值、环比变化(首末对比),生成"本周 X 较上周 +12.5%,峰值出现在周三"式结论,可直接进周报。 汇报级配色:内置商务配色(主色 + 高亮最大值),自动标数值标签、目标线(可选)。 纯 SVG 输出:零依赖生成矢量图,任意浏览器/文档可用;本地装有 matplotlib 时也可按同一 JSON 自行转 PNG。

personAuthor: user_af5149c6hubcommunity

周报数据图表自动生成

适用场景

周报/月报要配图,打开 Excel 调图表调半小时,导出还糊。本技能输入一组数据(如每日 DAU、每周 GMV、各渠道转化率),一键生成周报级质感的图表(SVG 矢量图)+ 一句可直接粘贴的结论句。SVG 放大不糊、可直接插入在线文档/浏览器另存,零依赖任何绘图库。

核心能力

  1. 三种图型:柱状图(对比)/ 折线图(趋势)/ 横向条形图(排名),chart: auto 时按数据形态自动推荐(时间序列→line,类目对比→bar,排名类目多→hbar)。
  2. 自动结论句:识别最大值、最小值、环比变化(首末对比),生成"本周 X 较上周 +12.5%,峰值出现在周三"式结论,可直接进周报。
  3. 汇报级配色:内置商务配色(主色 + 高亮最大值),自动标数值标签、目标线(可选)。
  4. 纯 SVG 输出:零依赖生成矢量图,任意浏览器/文档可用;本地装有 matplotlib 时也可按同一 JSON 自行转 PNG。
  5. 负值兼容(v1.0.2+):纵轴自动下探到最小值,目标线兼容负值,适用收支/增减类数据。

输入规范

向用户收集(任一缺失则主动引导补充,不臆测):

  • 数据:标签 + 数值对(如 周一~周日 各日数值;可直接粘贴两列表格)
  • 图表标题:这张图叫什么(如"本周 DAU 趋势")
  • 图型:bar / line / hbar / auto(不指定则按数据形态推荐)
  • 单位:数值单位(如 万元、人、%),用于轴与结论句
  • 目标线(可选):有考核目标值则画参考线

引导话术:「把数据发我(两列即可:名称 + 数值),告诉我图表标题和单位。要看趋势用折线,比大小用柱状,做排名用条形——不确定就交给我推荐。」

处理流程

  1. 将用户数据整理为 JSON(结构见 references/input_template.md)。
  2. 调用 scripts/build_chart.py 生成图表与结论:
    python scripts/build_chart.py --input chart.json --output chart.svg
    
  3. 输出 SVG 文件路径 + 结论句 + 数据摘要表,提示用户可把 SVG 直接拖入文档或浏览器打开另存为图片。

脚本参数

| 参数 | 说明 | |---|---| | chart.json(位置参数)或 --input | JSON 输入;二者二选一,缺省读 stdin(编码自动 utf-8-sig/gbk 兜底) | | --output | SVG 输出路径(默认 chart.svg) | | --selftest | 运行内置自检(无需输入),退出码 0/4 |

输出格式

✅ 图表已生成:chart.svg(880×520 矢量图,放大不糊,图型:line)

【结论句(可直接粘贴进周报)】
整体上行:周日 4.52 万较周一 3.80 万增长 18.9%,峰值出现在周日(4.52 万)。
周三出现低点 3.65 万,建议在周报中补充当日归因。

【数据摘要】
| 指标 | 值 |
|---|---|
| 最大值 | 周日 4.52 万 |
| 最小值 | 周三 3.65 万 |
| 均值 | 4.05 万 |
| 首末变化 | +18.9% |

边缘用例(v1.0.3 已覆盖)

  • 数值含非数字(如"约1500"、"1,230人")→ 自动剥离非数字字符后参与计算,并在结论后注明清理了哪些项
  • 负值数据(如收支 -3 / +2 / -1)→ 纵轴自动下探,目标线与结论均兼容
  • 全相等数据(如 [5,5])→ 纵轴 guard 避免除零,正常出图
  • 标签与数值数量不等 → 抛出明确错误(退出码 2),指出差异位置
  • 数据点不足 2 个 → 提示无法成图(退出码 2)
  • 数据点超过 31 个 → 仍会生成,但附"建议聚合到周/月粒度"提示
  • chart 取值非法 → 回退 auto 推荐逻辑

异常处理

  • 数据不足 2 个点 → 提示无法成图,请补充数据(退出码 2)。
  • 数值含非数字(如"约1500")→ 自动剥离非数字字符并在摘要注明;剥离后仍无法解析则报错(退出码 2)。
  • 标签与数值数量不等 → 指出差异位置,请用户核对(退出码 2)。
  • 文件读写失败 → 退出码 3 并给出具体原因。

自检

修改脚本后先跑一遍,确认无回归:

python scripts/build_chart.py --selftest

适用限制与免责声明

  • 输出为 SVG 矢量图;如需 PNG,可在浏览器打开 SVG 截图,或本地装 matplotlib 自行转换。
  • 结论句基于首末对比与极值的确定性计算,不构成业务归因;涉及考核数据请以业务口径复核。
  • 单图单指标设计;多指标对比请分多次生成或说明后合并需求。