Communitygithub.com

maverickmaltin/graph

将数据转化为自动构建的动画图表视频(1080x1920 MP4)。使用 /graph 命令配合数值、表格、CSV 或任意要求来生成动画图表。

graph 是什么?

这是一个 AI 智能体技能,用于将用户提供的数值数据(如“3月200K,4月650K,11月1.5M”)、粘贴的表格、CSV 文件、截图或文字描述,自动转化为一段约 5 秒的无声 MP4 动画图表视频。它支持条形图和折线图,并内置多种主题(night、light、sunset、mint)和配置选项,如数值格式、数据标签、强调柱、来源注释等。工作流程包括:环境检查(依赖 playwright 和 imageio-ffmpeg)、编写 JSON 规格文件、通过 render.py 脚本预览最后一帧、渲染最终视频。该技能适用于 Claude Code 等支持自定义技能的 AI 编程环境,并在缺乏浏览器支持时提供 HTML 降级方案。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/maverickmaltin/claude-animate-skills/tree/HEAD/skills/graph

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

/graph:你的数字变成动画图表

用户以任意形式给出数字:3月 200K,4月 650K,11月 1.5M、粘贴的表格、CSV 文件、截图或一句话。你将它们转化为一个小规格文件,检查一帧,渲染视频并返回一个无声的 MP4(约 5 秒)。

下面的 ${CLAUDE_SKILL_DIR} 是这个技能所在的文件夹(即此 SKILL.md 所在的文件夹)。如果你的环境没有填充它,请使用该文件夹的路径。将所有内容保存到用户当前文件夹,或用户指定的文件夹。

0. 环境检查

python3 "${CLAUDE_SKILL_DIR}/scripts/render.py" --check

这需要几秒钟;如果你不确定这台计算机是否已设置好,请运行它。"ready": true 表示就绪。否则运行它在 "fix" 下列出的命令,告诉用户这是一次性安装:python3 -m pip install playwright(浏览器驱动),python3 -m playwright install chromium(仅在未安装 Google Chrome 或 Edge 时需要,约 150 MB),python3 -m pip install imageio-ffmpeg(仅在缺少 ffmpeg 时需要)。如果 pip 拒绝并提示“外部管理环境”,请创建一个私有环境并对其 Python 执行所有命令:python3 -m venv ~/.animate-skills && ~/.animate-skills/bin/pip install playwright imageio-ffmpeg,然后根据需要运行 ~/.animate-skills/bin/python -m playwright install chromium。在 Windows 上,使用 py 代替 python3。如果此环境无法使用浏览器(例如 Claude 应用的沙箱),请参考此文件末尾。

1. 编写规格文件

保存 graph-<主题>.json:

{
  "title": "我的 Instagram 关注者",
  "subtitle": "2026",
  "data": [["3月", 200000], ["4月", 650000], ["11月", 1500000]],
  "source": "Instagram",
  "theme": "night"
}

规则:

  • 使用用户的精确数字。切勿发明、平滑、四舍五入或填充数值。如果某些内容确实模棱两可(例如哪一列、什么单位),问一个简短的问题;否则直接进行。
  • 写出完整数字:650K → 650000,1.5M → 1500000,12% → 12 并设置 "suffix": "%"。
  • 保持标签简短(最多约 8 个字符效果最佳):3月、Q1、2024、Mon。
  • 标题描述数字代表的含义,尽可能使用用户的措辞(最多约 30 个字符;| 强制换行)。仅当用户提供了或请求中明确包含(如“我的 Instagram 关注者” → 来源 Instagram)时,才添加 subtitle 和 source;不要编造。
字段作用
title、subtitle标题及其下方的一行小字(句号、单位)。
data[["标签", 数字], ...] 或 [{"label": "...", "value": n}, ...],按顺序排列。
type留空以自动选择:最多 10 个值时使用条形图;更长的序列、以及数值变化相对于其大小很小的场景(如体重从 210 降至 178、价格、温度),使用折线图并缩放范围。设置为 "bar" 或 "line" 以强制指定。
prefix、suffix单位:"$"、"€"、"%"、" kg"。
decimals强制指定小数位数。默认情况下,每个值保留其自己的小数位数。
compact默认将 10,000+ 显示为 12K / 1.5M / 2B。设置为 false 显示完整数字。
callout留空以自动生成从第一个值到最后一个值的增长标签(↑ 7.5x;10x 以上使用整数,如 ↑ 77x;↑ 32%;↓ 18%)。也可以使用你自己的简短文字(如 "恢复盈利"),或设置为 null 表示不显示。
good当较低数值更好时(如体重减轻、债务还清、成本、比赛时间)设置为 "down":下降时显示绿色标签而非红色。
highlight指定哪条柱为金色:"last"(默认)、"max"、索引,或 "none"。
themenight(深海军蓝背景、珊瑚色柱;默认)、light、sunset、mint。
source图表下方的小字“来源:...”注释。
size"1080x1920"(竖版,默认)、"1080x1080"、"1920x1080"。
duration、fps时长(默认约 5 秒)和帧率(默认 30;60 更流畅但渲染更慢)。

示例:examples/instagram-followers.json(条形图)、examples/website-visitors-line.json(折线图)。

2. 检查最后一帧

python3 "${CLAUDE_SKILL_DIR}/scripts/render.py" graph-<主题>.json --still end --out graph-<主题>-check.png

查看图像(需要 2-3 秒生成):标签可读、无重叠、数字与用户提供的完全一致。如有问题,修改规格文件并再次检查。

3. 渲染视频

python3 "${CLAUDE_SKILL_DIR}/scripts/render.py" graph-<主题>.json --out graph-<主题>.mp4

大约需要 10-20 秒。删除检查图像。

4. 交付

向用户提供 MP4 的路径(如果你的环境可以显示文件,请展示它)。该视频没有声音,可直接用于添加音乐或配音。提供一个快速变体建议(如另一种主题、方形尺寸、将条形图改为折线图)。

此处没有浏览器?(例如 Claude 应用的沙箱)

如果环境检查无法让浏览器运行,请将动画生成为页面:python3 "${CLAUDE_SKILL_DIR}/scripts/render.py" graph-<主题>.json --html graph-<主题>.html。该页面可在任何浏览器中播放图表(如果可以,请将其作为工件展示)。告知用户 MP4 需要装有 Claude Code 的计算机,或对页面进行屏幕录制。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

相关技能