返回评测
代码生成 代码-视觉转代码 未饱和 模态 · 图像 任务 · 代码生成

Plot2Code

图表到代码生成基准,配套支持「渲染-比对-修正」的迭代评测流程,考察模型利用执行反馈自我修正的能力

多校联合(Plot2Code 团队) ·

考察能力

图表理解 matplotlib 代码生成 执行反馈利用 迭代修正

构建信息

数据规模
132 个图表任务
构建方式
收集 matplotlib 官方示例与真实科研图表,提供可执行参考代码;支持「生成 → 渲染 → 比对 → 修正」的多轮评测
评测方式
渲染结果与参考图比对 + 代码执行检查(支持多轮反馈修正)
核心指标
Pass Rate / 视觉相似度(含修正后)

为什么重要

Plot2Code 在 ChartMimic 之外补了一个关键维度:能不能利用执行反馈自我修正。它的评测不是「生成一次就打分」,而是允许模型把代码跑起来、看到渲染结果、跟参考图比对、再改一版。

这个设定更贴近真实工作流——没有人指望模型一次写对图表代码,真正的价值在于「跑一下看看哪里不对,再改」。Plot2Code 的基线结果显示,加上执行反馈后模型的成绩有明显提升,而这个提升幅度本身就是一个有价值的观测指标:不同模型利用反馈的能力差异很大。

对数据侧的意义:这类任务天然产生多轮修正轨迹(初始代码 → 渲染 → 差异 → 修正代码),是训练「会用工具的模型」的高质量数据。相比只用最终正确代码训练,带修正过程的轨迹能教会模型如何根据视觉反馈调整。

构建方式

  1. 收集 matplotlib 官方示例与科研图表,保留可执行的参考代码
  2. 为每个任务提供参考图(渲染结果)与目标代码
  3. 评测流程设计为闭环:模型生成代码 → 执行渲染 → 与参考图比对 → 允许修正 → 再评分
  4. 记录初始得分与修正后得分,用于衡量「反馈利用效率」
  5. 同时考察代码可执行性与视觉还原度

任务示例

第一轮:模型看到一张带误差棒的折线图,生成初始代码——但误差棒颜色设错、图例缺失。 执行反馈:渲染出来的图与参考图比对,发现两处差异。 第二轮:模型修正颜色与图例,重新渲染——通过。

评分同时记录「一次通过率」与「修正后通过率」,两者的差值反映模型利用反馈的能力。

最新进展

  • 论文显示:引入执行反馈后成绩显著提升,且提升幅度在不同模型间差异明显——这是 Plot2Code 相对其他视觉转代码基准的独特价值
  • 与 ChartMimic 形成互补:ChartMimic 覆盖广(32 类图表),Plot2Code 更关注「修正闭环」
  • 「渲染-比对-修正」的评测范式被后续的交互式代码生成工作沿用

关键发现

  • 一次写对不是唯一标准:能利用反馈修正同样重要,且更贴近真实使用
  • 反馈利用效率是可测的能力维度:不同模型的提升幅度差异,反映其「读图找差异」的能力
  • 多轮轨迹是优质训练数据:修正过程比最终答案包含更多信息
  • 与执行环境绑定:这类基准的评测成本高于纯静态比对,但信息量也更大
图表 视觉转代码 matplotlib 执行反馈 多轮修正