Chart Image

📊 Server-native charts, zero bloat

dev-tool榜 #2

Server-side chart generation with 10+ chart types, zero browser overhead, ~15MB footprint. Ideal for VPS/Fly.io deployments needing fast, offline visualization.

收藏
19.6k
安装
9.7k
版本
2.6.18
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

chart-image 是基于 Vega-Lite 的无头图表生成工具,通过 Node.js 脚本将 JSON 数据转换为 PNG/SVG 图像。支持命令行调用,典型工作流:

node chart.mjs --type line --data '[{"x":"A","y":10}]' --output chart.png

支持的图表类型:线图、柱状图、面积图、散点图、饼图/环形图、K线蜡烛图、热力图、多序列对比、堆叠图、双Y轴叠加(如价格+成交量)。

关键特性

  • 无浏览器依赖:纯 Node.js 实现,对比 Puppeteer 方案减少 400MB+ 体积
  • 预编译二进制:使用 Sharp 图像库,无需原生编译工具链
  • 冷启动 <500ms:无 Chrome 启动延迟,适合 Serverless/Fly.io 场景
  • 完全离线:零外部 API 调用,对比 QuickChart.io 等 SaaS 方案

显著优点

1. 部署友好:专为 Docker/VPS 设计,解决 node-canvas 常见的系统依赖地狱
2. 功能完整:覆盖金融 K 线、热力图、Sparkline 微图、时间序列、双轴组合等复杂场景

3. 输出灵活:内置社交媒体预设尺寸(Twitter/Bluesky/Instagram)、暗黑模式自动切换、自定义 d3-format 格式化

4. 监控优化--show-change--focus-recent--show-values 等选项专为告警图表设计

潜在缺点/局限性

  • 数据预处理依赖:仅接受 JSON 数组输入,无内置数据清洗/聚合能力
  • 样式定制深度有限:复杂自定义需直接编辑 Vega-Lite spec(--spec 选项),门槛较高
  • 无交互性:仅生成静态 PNG/SVG,不支持 tooltip、缩放等动态功能
  • Node.js 绑定:非多语言方案,异构技术栈需额外封装

适合人群

  • 运维/告警系统开发者:需要低延迟、离线生成监控图表的后端服务
  • Fly.io/Docker 部署用户:追求最小镜像体积、零原生编译的容器化场景
  • 量化/金融数据团队:需要 K 线、成交量叠加、时间序列标注等专业图表
  • 社交媒体自动化:程序化生成固定尺寸图表用于 Bot 推送

常规风险

  • 文件系统权限:输出目录需可写,建议使用 /data/clawd/tmp/ 而非系统 /tmp
  • JSON 注入风险--data 参数直接解析用户输入,需确保上游已做注入过滤
  • 资源占用:大量并发生成时 Sharp 图像处理可能占用内存,建议队列限流
  • 时区感知--dark 自动模式基于以色列时区(UTC+2/+3),跨国部署需手动覆盖

Chart Image 内容

暂无文件树

手动下载zip · 37.3 kB
contentapplication/octet-stream
请选择文件