chart-image

📊 无浏览器轻量图表引擎

基于Vega-Lite与Sharp的轻量级图表生成工具,专为Fly.io/VPS无浏览器环境设计,500ms内生成出版级PNG/SVG图表,零外部依赖调用。

收藏
9.8k
安装
2.5k
版本
v2.5.1
CLS 安全性认证2026-05-05
点击查看完整报告 >

使用说明

核心用法

chart-image 是一款专为服务器端部署优化的图表生成技能,通过命令行接口将JSON数据转换为PNG或SVG格式的可视化图表。用户通过--type指定图表类型(line/bar/area/pie/donut/candlestick/heatmap等),--data传入JSON数组数据,,--output设定输出路径即可完成生成。支持多系列对比、堆叠柱状图、K线图OHLC数据、热力图、成交量叠加等复杂场景,并提供丰富的视觉定制选项包括暗黑模式、坐标轴格式、颜色方案、时间序列处理等。

显著优点

部署友好性是该技能最大亮点:采用Sharp预编译二进制替代Canvas原生编译,彻底摆脱Puppeteer/Chrome依赖,镜像体积从400MB+压缩至约15MB,冷启动时间控制在500ms以内,完美适配Fly.io、VPS、Docker等受限环境。功能层面覆盖9大图表类型与20+配置参数,支持Sparkline微图表、动态注解、百分比/货币/科学计数等专业格式,且完全离线运行无需API密钥。Vega-Lite的声明式语法保证了图表的学术出版品质。

潜在缺点与局限性

输入数据依赖JSON.parse()()解析但未做严格校验,异常数据可能导致崩溃;文件输出路径完全由用户参数控制,存在误覆盖风险;不支持实时交互式图表,仅生成静态图片;复杂自定义需求需直接编写Vega-Lite规范JSON。此外,Sharp预编译二进制在部分ARM架构或精简容器环境中可能遇到兼容性问题。

适合的目标群体

DevOps工程师与后端开发者(需要监控告警图表)、数据分析师(快速生成报告插图)、量化交易团队(K线与成交量可视化)、SaaS产品团队(用户数据导出功能)、以及任何在容器化/无服务器环境中需要图表能力的开发者。

使用风险

主要风险集中于输入处理环节:未经验证的JSON数据可能触发解析异常或内存占用过高;用户可控的输出路径若指向系统关键文件将导致覆盖损失。建议始终将输出目录限定于/data/clawd/tmp//等隔离路径,并对输入数据实施大小限制与结构预检。依赖项Vega与Sharp均为活跃维护的主流库,供应链风险可控。

安全解读

核心用法

Chart Image Generator 是一个基于 Node.js 的数据可视化工具,采用 Vega-Lite 语法将 JSON 数据转换为高质量图表图像。通过命令行接口调用,支持线图、柱状图、面积图、饼图/环形图、K线图、热力图等10余种图表类型,以及多系列、堆叠、双Y轴等高级特性。

关键调用示例

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

支持 JSON 数据管道输入、自定义 Vega-Lite 规范、时间序列轴、货币/百分比格式化、暗色主题、Sparkline 迷你图等。专为监控告警场景设计了 --show-change--focus-change--focus-recent 等快速生成关注焦点图表的选项。

显著优点

部署友好性突出:区别于传统方案需要 Puppeteer(400MB+)或原生编译的 canvas,本工具使用 Sharp 预编译二进制,总依赖仅 ~15MB,冷启动 <500ms,完美适配 Fly.io、VPS、Docker 等资源受限环境。

功能完整度高:覆盖金融级需求(OHLC K线图)、数据对比(多系列/堆叠)、空间分布(热力图)、紧凑展示(Sparkline),支持 SVG/PNG 双输出、20+ 颜色主题、自动时区暗色切换。

零外部依赖:纯本地处理,无 API 调用,支持完全离线运行,数据隐私可控。

潜在局限

  • 输入验证薄弱:当前版本对 JSON 数据缺乏结构校验,异常输入可能导致渲染失败或非预期输出
  • 错误提示简略:Vega-Lite 编译或 Sharp 渲染阶段的错误信息不够详细,调试体验待优化
  • 许可证缺失:未声明开源许可证,存在使用合规性模糊地带
  • 无交互能力:仅生成静态图像,不支持网页端交互式图表

适合人群

  • 需在 Fly.io/VPS/Docker 部署图表服务的开发者
  • 构建监控告警系统的运维团队(需要快速生成带涨跌幅标注的图表)
  • 数据报告自动化流程(CLI 驱动、可脚本化)
  • 对启动速度和资源占用敏感的无服务器场景

常规风险

供应链安全:依赖 sharp 原生模块,需确保从官方 npm 源安装,建议锁定版本至 patch 级别。

输入处理风险:用户提供的 JSON 数据直接解析,虽无代码注入风险,但恶意构造的大体积输入可能导致内存压力。

功能边界:明确为"生成后发送"模式设计,工具本身不包含消息推送功能,需配合外部渠道发送图像。

chart-image 内容

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