论文绘图时,每次换一组实验,就要重新调整配色、字体、图例、坐标轴、网格和版式。看到其他论文里合适的图表形式时,想借鉴它来展示自己的数据,通常还得自己拆结构、调参数,再重新写一遍 Matplotlib。
本期「Skill 安利实践」测试一个具体问题:**能不能把这些反复使用的论文绘图经验交给 Skill,让 Agent 直接从已有风格或参考图开始?**这次使用的是 Trae1ounG 开源的 Paper Plot Skills ,重点实测其中的 plot-from-data 和 plot-from-image。
Paper Plot Skills 提供了两种绘图方式
plot-from-data 适合手里已经有实验数据的场景。Codex 会先判断数据和图表结构,再选择合适的预置 style,读取对应的 reference 和 Python 脚本,在这个基础上替换数据、调整布局并生成新图。
plot-from-image 适合已经找到参考论文图的场景。如果参考图片能匹配已有 style,它会继续复用现成模板;没有合适模板时,则按照复现指南分析图片,再重新编写 Matplotlib 实现。
这次我们分别用真实 Benchmark 数据和 DeepSeek V4.1 Flash 的论文图跑了一遍这两条工作流。
同一份数据测试 plot-from-data
我们准备了一组 6 个模型 × 3 个 Benchmark 的数据:

这组数据是我们在 9 月 10 日为本次绘图实操锁定的公开评测快照。其中 DeepSeek V4.1 Flash 使用官方公开成绩,其余主要参考 Artificial Analysis 公开数据。不同来源及推理档位的测试设置可能存在差异,因此只用于绘图实践,不作为严格的模型横向排名。
我们把这组数据整理成基础 CSV 文件 main_chart_data.csv,后面的 Baseline 和 Skill 版都读取同一份输入,避免因为数据不同影响对比。
先跑一版不带 Skill 的 Baseline
第一次只让 Codex 根据 CSV 自己决定怎么画:
bash
读取 main_chart_data.csv,用 Python 生成一张分组柱状图。
完整展示 6 个模型在 3 个 Benchmark 上的 18 个成绩,
不修改数据,保证图例、坐标轴和标签清晰。
视觉方案由你自行决定。
本次不要调用 Paper Plot Skills。
开始绘图前,Codex 先检查了当前 Python 环境,发现没有安装 Matplotlib。它没有临时补装依赖,而是直接改用已有环境里的 pandas + Pillow 来生成这张分组柱状图。后面的 Skill 版则使用 Matplotlib,两版的实现路线本身也不同。

图 1:Baseline 输出
最终图包含标题、图例、配色和纹理、18 个数值标签、统一纵轴、浅色网格和数据来源说明,整体更偏技术报告和数据文章的视觉风格。脚本首次运行成功,视觉检查后没有再改代码,18 个数据点也全部通过核验。
再让 plot-from-data 处理同一份数据
接下来把 plot-from-data 安装到当前项目的 .agents/skills:
bash
& 'C:\Users\斌斌\.cache\codex-runtimes\codex-primary-runtime\dependencies\python\python.exe' `
'C:\Users\斌斌\.codex\skills\.system\skill-installer\scripts\install-skill-from-github.py' `
--repo Trae1ounG/paper-plot-skills`
--path plot-from-data`
--dest 'E:\Skill推荐\260911_Skill\skill-practice-03\.agents\skills'
安装完成后,Codex 已经可以在当前项目中识别 plot-from-data。由于后面的模板需要 Matplotlib,我们另外给项目建立了一套独立 .venv,安装 Matplotlib 和 Numpy,没有修改 Codex 自带的 Python 环境。
正式任务继续读取和 Baseline 完全相同的 main_chart_data.csv:
bash
使用 main_chart_data.csv,
调用当前项目中的 plot-from-data。
自行选择合适的预置 style,
实际读取对应 reference 和 script,
再生成最终 Python 脚本和 PNG。
这次 Codex 先判断输入属于多系列分组柱结构,选择了 bar_grouped_hatch,随后读取 bar_grouped_hatch.md 和 bar_spice.py,再把模板中的示例数据替换成当前 CSV。
整个过程大致是:判断图表结构 → 选择 style → 读取 reference → 读取 script → 替换数据 → 针对当前任务调整
原模板依赖 LaTeX
正式运行时先碰到了一个环境问题。bar_spice.py 默认开启了:
bash
'text.usetex': True
本机没有完整的 LaTeX 工具链,因此模板没有直接跑通。我们没有为了这张图额外安装整套 TeX 环境,而是只修改本次输出脚本:关闭外部 TeX,换成本机可用的 serif 字体,安装在 .agents/skills 下的原始 Skill 文件保持不变。这样既保留了原始 Skill,也避免为一次绘图额外增加一套环境依赖。
V1 已经可用,又做了一次轻量调整
V1 的数据、布局和整体风格都已经通过检查。如果是日常使用,这一版完全可以直接作为最终结果。不过这期还要拿它和 Baseline 做对比,所以我们又多检查了一层模板里的视觉语义。
bar_grouped_hatch 原模板会用第三系列的深红色和斜线突出"主方法"。这次三个系列分别是 GPQA Diamond、HLE 和 Terminal-Bench v4.0,三项 Benchmark 处于平级关系。
因此我们只做了一个很小的调整:去掉第三系列独占的 hatch,其余配色、字体、网格、图例和布局都保持不变,得到 V2。

图 2:plot-from-data V1 / V2 对比。V1 已可直接使用;V2 只去掉第三系列独占的斜线,减少对 Terminal-Bench v4.0 的额外强调。
这次调整也能看出,论文绘图模板里的颜色、斜线、加粗等设计往往会带着原论文的数据语义。换到新的数据后,是否继续保留这些强调规则,需要结合当前任务判断。
Baseline 与最终 Skill 版对比
最终对比使用 V2 图片。

两张图的视觉方向差别很明显,但这里有一个实验变量需要说明:Baseline 实际使用的是 Pillow,Skill 版使用 Matplotlib,因此视觉差异不能全部归因于 Skill。这次更适合看成两套真实绘图工作流的比较。
从执行成本看,Baseline 一次运行成功;Skill 版在排查 Matplotlib 缓存权限和 LaTeX 依赖后完成出图,因此这次实测并不支持"用了 Skill 单次绘图会更快"的结论。
plot-from-data 带来的变化主要在工作起点上:Codex 可以先读取已有论文 style、reference 和代码模板,再根据当前数据做适配,而不用每次重新从零决定论文图怎么画。
参考 DeepSeek V4.1 Flash 技术报告 Figure 10 生成一张新图
plot-from-data 解决的是"手里已经有数据,怎么从现成论文风格开始画"。Paper Plot Skills 还提供了另一个能力 plot-from-image :如果已经看到一张合适的论文图,可以直接从参考图出发。
这次我们选了 DeepSeek V4.1 Flash 技术报告中的 Figure 10 作为参考。它是一张双 panel 折线图,用 Multi-Agent 和 Single-Agent 两条曲线展示不同时间预算下的结果。

图 3:DeepSeek V4.1 Flash Figure 10 原图
接下来把 plot-from-image 安装到当前项目:
bash
& 'C:\Users\斌斌\.cache\codex-runtimes\codex-primary-runtime\dependencies\python\python.exe' `
'C:\Users\斌斌\.codex\skills\.system\skill-installer\scripts\install-skill-from-github.py' `
--repo Trae1ounG/paper-plot-skills`
--path plot-from-image`
--dest 'E:\Skill推荐\260911_Skill\skill-practice-03\.agents\skills'
安装完成后,当前项目里就同时有了 plot-from-data 和 plot-from-image 两个 Skill。为了测试"参考论文图 → 换成自己的数据"这条工作流,我们另外准备了一组模拟实验数据:

数据保存为 plot_from_image_demo_data.csv。这组数据只用于 Skill 实操,不是 DeepSeek 官方结果,也不是任何真实公开 Benchmark。
给 Codex 的任务保持得很简单:
bash
使用当前项目中的 plot-from-image,
参考 DeepSeek V4.1 Flash Figure 10 的表达方式,
用 plot_from_image_demo_data.csv 生成一张新的论文图。
分析参考图的主要视觉规则,
不要使用 DeepSeek 原图中的实验成绩。
最终输出可编辑、可复用的 matplotlib 脚本。
为了避免论文 Caption 干扰画布分析,Codex 保留原图,同时另外裁出一份只包含图表主体的图片。随后 plot-from-image 判断 Figure 10 没有匹配到现有预置 style,于是读取 reproduction_guide.md,重新分析双 panel、深浅蓝系列、实线和虚线、marker、对数时间轴、统一图例、网格和关键值标注。

图 4:plot-from-image Adapted Output
新图保留了 Figure 10 的主要结构,同时根据新的数据重新调整参数。原图中的关键数值使用百分比,我们的 CSV 字段只是 Score,脚本没有自行添加 %。IssueFixBench 的最高值达到 34.70,右侧 panel 也根据新数据把 y 轴扩展到 40,没有照搬参考图的刻度范围。参考图提供的是视觉结构,数值格式和坐标轴范围仍由新的输入数据决定。
最终生成的 plot_from_image_adapted.py 直接读取外部 CSV,并支持 --csv 和 --output 参数。20 个 score 没有写死在 Python 里,脚本还会检查 CSV 列名、panel、Agent 类型、时间点、缺失值和重复数据。
保持相同的数据结构,后续就可以继续替换 CSV 重画。plot-from-image 很适合这样的工作方式:找到一张合适的论文图,把它拆成可编辑的 Matplotlib 绘图规则,再换上自己的数据。
Skill 减少了重复摸索论文绘图规则
两个案例跑下来,Paper Plot Skills 更适合需要长期做实验和论文图的人。已有实验数据时,plot-from-data 可以从现成的 style、reference 和脚本开始;看到合适的论文图时,plot-from-image 可以把其中的布局和视觉规则转成可继续修改的 Matplotlib 实现。
它也有使用边界。模板可能依赖本机没有安装的工具,比如这次遇到的 LaTeX;已有风格里的颜色、斜线和加粗,也可能带着原论文的数据语义,换数据后仍需要人工检查。
这次实测下来,Paper Plot Skills 的价值可以概括成一句话:**把散落在论文图、脚本和绘图参数里的经验,整理成 Agent 可以直接复用的工作方法。**对于长期做实验、论文和科研绘图的人,这比每次重新调一遍字体、网格、图例和 Matplotlib 参数更实用。
参考资料
Paper Plot Skills GitHub:github.com/Trae1ounG/paper-plot-skills; DeepSeek-V4.1-Flash Technical Report:huggingface.co/deepseek-ai...。