Chart Image

📊 零浏览器图表生成,云原生首选

数据可视化榜 #1

Server-native chart generation without browsers, perfect for Fly.io/VPS deployments. Generates publication-quality PNG/SVG charts from JSON data using Vega-Lite and Sharp—no Puppeteer, no native compilation, <500ms cold starts.

收藏
43.9k
安装
9.7k
版本
2.3.0
CLS 安全性认证2026-06-23
点击查看完整报告 >

使用说明

核心功能

Chart Image Generator 是一款专为无头服务器环境设计的图表生成工具,基于 Vega-Lite 和 Sharp 图像处理库,可将 JSON 数据转换为出版级 PNG/SVG 图表。核心价值在于彻底摆脱浏览器依赖:无需 Puppeteer、无需下载 Chrome、无需原生编译工具链。

显著优点

| 维度 | 传统方案 (Puppeteer/Canvas) | 本方案 |
|------|---------------------------|--------|
| 依赖体积 | 400MB+ | ~15MB |
| 冷启动时间 | 2-10秒 | <500ms |
| 部署复杂度 | 需 apt-get 安装系统库 | `npm install` 即可 |
| 离线能力 | 依赖外部 API (QuickChart) | 完全本地执行 |
| 云原生友好 | 需特殊 Docker 配置 | Fly.io/VPS 开箱即用 |

支持的图表类型:线图、柱状图、面积图、散点图、饼图/环形图、K线蜡烛图、热力图、多序列对比、堆叠柱状图、成交量叠加、迷你 Sparkline。

专业功能:时间序列轴(自动处理日期间隙)、Y 轴格式化(货币/百分比/紧凑数字)、水平参考线、时间轴事件标注、暗黑模式自动切换、聚焦最近 N 个数据点、涨跌幅标注。

潜在局限

1. 静态输出:仅生成图片,不支持交互式图表(tooltip、缩放需前端实现)
2. Vega-Lite 边界:复杂自定义可视化需手写 Vega-Lite spec,学习曲线存在

3. 无实时刷新:需重新执行命令生成新图,非流式更新

4. 字体限制:依赖系统字体,特殊字体需自行配置

适合人群

  • DevOps/SRE:服务器监控告警图表、基础设施指标可视化
  • 量化/金融开发者:K线图、价格走势、成交量分析(支持 OHLC 数据)
  • 数据工程师:自动化报告生成、定时任务输出图表
  • Bot/自动化开发者:Discord/Telegram 机器人嵌入图表、告警消息配图

使用风险

  • :纯 Node.js 实现,无网络对外请求,无代码执行漏洞
  • 数据隐私:数据全程本地处理,不上传第三方服务
  • 依赖稳定性:Sharp 预编译二进制在少数架构(如 Alpine musl)可能需要额外配置

最佳实践

# 告警风格:聚焦变化 + 暗黑模式 + 关键值标注
node chart.mjs --type line --data '[...]' \
  --title "指标监控" --show-change --focus-change --show-values --dark \
  --output alert.png

# 生成后务必通过消息工具发送图片(非 thread-reply)
# action=send, filePath=/data/clawd/tmp/chart.png

安全解读

核心用法

chart-image 是一个专为服务端部署设计的数据可视化 Skill,基于 Vega-Lite 和 Sharp 实现纯 Node.js 图表渲染,无需 Chromium 或原生编译工具。

典型使用场景:

  • 监控告警:生成带涨跌标注、聚焦最近数据的趋势图
  • 报告自动化:时间序列、K线、热力图等出版级图表
  • 实时数据看板:Sparkline 迷你图、多系列对比图

技术亮点:

  • 轻量快速:~15MB 依赖,冷启动 <500ms,对比 Puppeteer 方案(400MB+,数秒启动)
  • 部署友好:预编译二进制,Fly.io/Docker 一键部署,无 node-gyp 编译噩梦
  • 类型丰富:Line/Bar/Area/Pie/Donut/Candlestick/Heatmap,支持堆叠、多轴、注解

潜在局限:

  • 样式定制深度受限于 Vega-Lite 语法,复杂交互图表需自定义 Spec
  • JSON 数据输入需自行序列化,大数据集可能受内存限制
  • 无实时渲染能力,每次调用生成静态文件

适合人群:

  • 需要服务器端自动生成图表的开发者
  • 受限于容器体积或启动时间的云原生应用
  • 金融/监控领域的自动化报告需求

常规风险:

  • 输入数据通过 JSON.parse 解析,建议上游做数据校验
  • 输出路径可控,生产环境应限制写入目录
  • 依赖 vega/sharp 需关注 CVE 更新,建议锁定版本

---
评分依据:代码质量优秀(91分),无危险函数,零网络请求,T2可信来源

Chart Image 内容

scripts文件夹
手动下载zip · 31.5 kB
chart.mjstext/javascript
请选择文件