Chart Image

📊 零浏览器轻量图表,服务器秒级生成

专为 Fly.io/VPS 设计的轻量级图表生成器,无需浏览器或原生编译,纯 Node.js 实现,支持多种图表类型

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

使用说明

核心功能

chart-image 是一款面向服务器环境优化的图表生成工具,基于 Vega-Lite 生成 PNG 图表。核心价值在于零依赖重型基础设施:无需 Puppeteer、无需 Chrome、无需 Canvas 原生编译,仅依赖 Sharp 预构建二进制文件。

显著优点

| 特性 | 优势 |
|------|------|
| **部署友好** | 仅 ~15MB 依赖,对比 Puppeteer 方案 400MB+ |
| **冷启动快** | <500ms 生成图表,无浏览器预热延迟 |
| **离线可用** | 零外部 API 调用,纯本地计算 |
| **图表丰富** | 线形/柱状/面积/饼图/K 线/热力图/多系列/堆叠/双轴 |
| **监控场景优化** | 内置 `--show-change`、`--focus-recent`、`sparkline` 等告警专用模式 |

局限性与风险

1. 功能边界:依赖 Vega-Lite 语法,复杂自定义图表需手写 JSON spec
2. 数据规模:未明确说明大数据集性能上限,超大规模数据可能需预处理

3. 格式限制:输出为 PNG/SVG,不支持交互式图表(如网页 hover)

4. 时区假设:自动暗黑模式基于以色列时间(20:00-07:00),非用户本地时区

适用人群

  • 运维/监控场景:快速生成告警配图、指标趋势图
  • Bot/自动化系统:Discord/Telegram 机器人嵌入图表
  • 资源受限环境:Fly.io 免费 tier、Docker 轻量容器
  • 离线/合规场景:无法调用 QuickChart.io 等外部 API 的企业环境

常规风险

  • 输入注入--data 接收 JSON 字符串,需确保上游数据已净化
  • 文件路径--output 支持任意路径,建议限制写入 /data/clawd/tmp/
  • 资源消耗:高频调用需考虑 Sharp 图像处理的 CPU/内存占用

安全解读

核心用法

Chart Image Generator 是一款基于 Vega-Lite 的服务器端图表渲染工具,通过命令行接口将 JSON 数据转换为高质量 PNG/SVG 图像。支持 line、bar、area、pie/donut、candlestick、heatmap 等 10 余种图表类型,以及多系列对比、堆叠、双 Y 轴、成交量叠加等高级功能。

典型使用场景:

  • 监控系统告警图表(--show-change --focus-recent 4 --dark
  • 财务/交易数据可视化(K 线图、价格走势)
  • 数据报告自动化生成
  • 嵌入式 sparkline 微型图表

命令行工作流:

# 安装依赖(一次性)
cd /data/clawd/skills/chart-image/scripts && npm install

# 生成图表
node chart.mjs --type line --data '[...]' --output chart.png

# 发送到频道(必须步骤)
# 使用 message 工具,action=send, filePath=/data/clawd/tmp/chart.png

显著优点

1. 部署友好:无需 Puppeteer/Chrome(节省 400MB+),无需原生编译工具链,Sharp 预编译二进制开箱即用
2. 极速冷启动:<500ms 生成图表,无浏览器启动延迟

3. 完全离线:零外部 API 调用,数据不出本地

4. 功能丰富:内置 alerting 优化(--show-change--focus-change)、暗色主题自动切换、D3 格式化、时间轴标注等

5. 体积轻量:依赖包约 15MB,适合边缘部署

潜在局限

1. 交互性缺失:仅输出静态图片,无 hover tooltip、缩放等交互功能
2. 样式定制受限:复杂视觉需求需直接编辑 Vega-Lite spec(--spec

3. 无实时数据流:需外部轮询脚本驱动更新

4. 输出路径未校验--output 参数无严格目录限制(低风险 CLI 场景)

适合人群

  • DevOps/SRE:需要轻量级监控图表生成,集成到告警流水线
  • 量化/金融开发者:快速生成 K 线、价格走势、成交量图
  • 数据工程师:自动化报告中的图表嵌入
  • 边缘/VPS 用户:资源受限环境,无法承受 Puppeteer 开销

常规风险

  • 依赖供应链:依赖 sharpvegavega-lite 三个主要库,需关注版本更新
  • 社区维护:T3 来源(个人开发者 @Cluka-399),建议生产环境 fork 后自行维护
  • 文件系统操作:生成图片写入指定路径,确保 /data/clawd/tmp/ 目录权限正确

Chart Image 内容

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