FigMirror
AI Agent 驱动的数据可视化工具,自动将数据绑图转换为顶会论文风格
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AI Agent 驱动的数据可视化工具,自动将数据绑图转换为顶会论文风格
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一个场景: 你刚刚跑完一组实验,手头有一堆 CSV 数据,急需画一张能投 NeurIPS 的图表。你翻出那篇经典论文里最漂亮的双面板折线图作为参考——那种字体、那种线宽、那种灰度搭配的质感。然后你打开 FigMirror,粘贴参考图,上传数据,点一下运行。几秒钟后,一个完全匹配的、可编辑的 matplotlib 脚本加 camera-ready PDF 就出现在了你的面前。这就是 FigMirror 正在做的事。

每一位发过顶会论文的研究者都知道,论文图表的制作往往是整个投稿过程中最磨人的环节之一。数据处理可以自动化、模型训练可以脚本化,但图表的"颜值"——线条粗细、坐标轴字体、面板排布、色值搭配——却高度依赖手工调参和审美经验。更要命的是,当同一组实验需要出多张风格统一的图时,每次都要重复这一套费时费力的流程。
传统方案有两种:要么用 AI 绘图工具生成示意图(无法直接绑数据),要么找 AI 编程助手手写 matplotlib 代码(需要反复调试 prompt,效果不稳定)。FigMirror 的出现填补了这个空白——它是一个专门为"风格迁移"而生的 AI Agent 系统,核心思路是:让 AI 学会"看"一张参考图,然后把自己的数据套进那种风格里。
FigMirror 的作者团队来自 VILA-Lab(Vision, Intelligence, and Learning Lab),项目于 2026 年 5 月开源,在极短时间内获得了 480+ Stars,说明科研社区对这类工具有着强烈需求。

FigMirror 的工作原理用一句话概括就是:"画一版 → 审核一版 → 改版 → 再审",直到结果达到论文级标准。
系统由两个核心 Agent 角色构成:
Drawer(绘图者):负责读取参考图和用户数据,生成 matplotlib 绑图代码,并渲染出 PNG 预览图。它的 prompt 被封装在 .codex/skills/figmirror/references/drawer.md 和 Claude skill 中,内置了大量论文图表的美学规则——比如 NeurIPS 论文常用的"双面板左右对比"、"横坐标用 Times New Roman"、"图例放在右上角且不加边框"这类行业惯例。
Reviewer(审阅者):负责在"全新上下文"中审计 Drawer 的输出。它只看到参考图、最新一版渲染结果和美学规则库,不参考之前失败的尝试,以确保每一轮审核都是"干净"的。Reviewer 输出严格的 JSON 评分,标注哪些方面达标、哪些还需要调整。
两个角色在 Orchestrator(编排器)的控制下循环迭代,直到 Reviewer 给出通过评分,或者达到最大迭代次数。整个循环完全在本地工作目录 <workdir>/ 下进行,每轮迭代产生的文件(img_iter0.png、audit_iter0.json 等)都通过原子写入(.tmp + rename)保证一致性。

FigMirror 的能力远不止基础折线图。系统内置了对多种图表类型的感知,以下是 README 展示的几个典型案例:
| 参考图 | 输出效果 |
|---|---|
| 期刊风格主图 | FigMirror 生成的主图 |
| Joint Hexbin 参考 | FigMirror 生成的 Hexbin 图 |
| 3D Waterfall 参考 | FigMirror 生成的 3D Waterfall 图 |
从参考图到生成图可以看到,FigMirror 在以下细节上做到了很好的风格迁移:面板排布方式、坐标轴样式、字体选择、色值区间、网格线透明度。即使数据完全不同,输出的图表在视觉上与参考图保持了高度一致的"家族感"。
除了 2D 图表,FigMirror 还内置了 3D Insert 路由。当检测到参考图或数据涉及 3D 渲染(如 Surface Plot、3D Waterfall)时,系统会加载专门的 three-d-prompting.md 规则集,启用 3D 材质、光照和投影模式匹配。
从代码结构看,FigMirror 采用了典型的"轻量后端 + AI 前端"架构:
| 层级 | 文件位置 | 职责 |
|---|---|---|
| Runner | scripts/figcopy_runner/ | 进程生命周期管理、事件总线、Web UI 交互 |
| Web UI | scripts/figcopy_serve.py | 静态 HTML 实时渲染,支持多 run 工作区 |
| Agent Prompt | .codex/skills/figmirror/ + .claude/skills/figmirror/ | Drawer / Reviewer / Orchestrator 的 prompt 规范 |
| 核心依赖 | pyproject.toml | matplotlib、numpy、pillow(运行时仅需这三项) |
运行时,FigMirror 支持两种 Agent 后端:
ClaudeRunner(scripts/figcopy_runner/claude.py)驱动 Claude CLICodexRunner(scripts/figcopy_runner/codex.py)驱动 Codex CLI两个 Runner 共享相同的接口契约(interface.py),通过 event_bus.py 发布 SessionEvent,SSE 端点实时推送迭代进度。Phase 2 的 MockRunner 则提供了纯本地模拟模式,不依赖任何外部 API。
FigMirror 是一个纯本地运行的 Python 包,依赖极少(matplotlib + numpy + pillow),Python 版本要求 >= 3.10。安装和使用流程:
# 准备参考图和数据
python3 scripts/figcopy_run.py --ref path/to/reference.png --data path/to/data.txt --workdir /tmp/myrun
# 然后在 Codex/Claude Code 会话中加载 figmirror skill
# /figmirror <workdir=/tmp/myrun>
figcopy_serve.py 提供了本地 Web 服务器,实时刷新展示每轮迭代结果,同时支持一键上传到 HuggingFace Space 分享。项目还提供了 HuggingFace Gallery,收录了 139 张不同风格的生成图作为参考库。
硬件需求极低:无需 GPU,普通笔记本即可运行,因为所有绑图逻辑都在 matplotlib 侧执行,AI 推理由云端 API(Claude/Codex)处理。
FigMirror 并非万能,以下场景体验可能受限:
FigMirror 代表着 AI 编程助手在科研场景的垂直深化。它不追求通用代码生成,而是针对"论文图表"这一极窄赛道做了深度优化——把顶会论文的视觉美学固化为可复用的 prompt 规则库。这与传统的 AI 绑图工具(如 raw graphs、Datawrapper)有本质区别:后者是模板驱动的,FigMirror 是 AI Agent 驱动的,可以适应任意风格参考图。
从趋势看,AI 辅助科研绘图正从"帮我画个图"进化到"按照某篇论文的风格帮我画图"。FigMirror 踩在了这个趋势的前沿,其 Drawer/Reviewer 双 Agent 架构也为其他"风格迁移 + 内容适配"的 AI 工具提供了可参考的设计模式。