Skip to content

paper-figure:论文配图 ​

分析结果带脚本,结果可复核画图需要 matplotlib;检查只需 Python 3.9+下载源码(ZIP)

按会议模板的栏宽画出尺寸和字号准确的数据图,避免 Type 3 字体,配色黑白打印也能区分;检查已有配图的字体、尺寸和分辨率。

常见问题 ​

  • 图画得很大,插进论文缩小一半,坐标轴上的字小到看不清;
  • matplotlib 默认导出的 PDF 含有 Type 3 字体,IEEE 等投稿系统会报错;
  • 几条线只靠颜色区分,黑白打印或者色盲读者分不出来;
  • 数字手抄进画图脚本,和实验结果对不上。

能做什么 ​

画新图:提供一个样式模块 paperstyle.py:

  • 支持 IEEE、ACM、USENIX、ICML、CVPR、NeurIPS、LNCS 模板,按模板的栏宽给出图的尺寸;
  • 字号设为正文的 80%,插入后不用再缩放;
  • 嵌入 TrueType 字体(pdf.fonttype = 42);
  • Okabe-Ito 色盲友好配色,每条线同时有不同的颜色、标记和线型。

Agent 会从原始结果文件计算均值、标准差、分位数,画误差棒。

检查已有的图:figcheck.py 检查 Type 3 字体、没嵌入的字体、PDF 里夹带的位图、图的宽度和插入后的缩放比例、位图的分辨率。

安装 ​

装到当前项目(.claude/skills/),macOS / Linux
curl -LO https://skills.bnuai.com/download/skills/paper-figure.zip && mkdir -p .claude/skills && unzip -o paper-figure.zip -d .claude/skills
装到个人目录,所有项目都能用,macOS / Linux
curl -LO https://skills.bnuai.com/download/skills/paper-figure.zip && mkdir -p ~/.claude/skills && unzip -o paper-figure.zip -d ~/.claude/skills
装到当前项目,Windows PowerShell
Invoke-WebRequest https://skills.bnuai.com/download/skills/paper-figure.zip -OutFile paper-figure.zip; Expand-Archive paper-figure.zip -DestinationPath .claude\skills -Force

压缩包从本站下载,不需要 Node.js 或 GitHub。带脚本的技能需要 Python 3.9 以上。更新时重新下载解压、覆盖原文件夹即可。

怎么用 ​

text
用 results/latency.csv 画一张 P99 延迟随请求速率变化的图,投 INFOCOM,放一栏。
帮我检查一下 figures/ 里的图能不能直接投稿。

示例 ​

python
import matplotlib.pyplot as plt
import paperstyle as ps

ps.use("ieee")
fig, ax = plt.subplots(figsize=ps.figsize("ieee", "single", aspect=0.6))
ax.errorbar(rates, mean, yerr=std, capsize=2, label="Ours")
ax.set_xlabel("Request rate (req/s)")
ax.set_ylabel("P99 latency (ms)")
ax.legend()
ps.save(fig, "figures/latency_vs_rate.pdf")

检查一张用默认设置画的图:

text
# 配图检查结果(ieee:一栏 3.5 英寸,通栏 7.16 英寸)

- ⚠️ figs/default.pdf
  - 建议改:含有 Type 3 字体(BMQQDV+DejaVuSans)。matplotlib 画图前设置 plt.rcParams['pdf.fonttype'] = 42 后重新导出
  - 建议改:宽 8.00 英寸,比通栏(7.16 英寸)还宽,插入后要缩小到 90%,图中的字也会按比例变小。按实际尺寸重新画(paperstyle.figsize)
- ⚠️ figs/default.png
  - 建议改:位图 800×500 像素,放一栏时约 229 dpi,低于 300 dpi,打印会模糊。除照片和截图外,数据图应该导出为 PDF 矢量图
- ✅ figs/styled.pdf

直接运行脚本 ​

bash
python3 skills/paper-figure/scripts/paperstyle.py                    # 列出支持的模板和栏宽
python3 skills/paper-figure/scripts/figcheck.py figures/ --venue acm

装了 pypdf(pip install pypdf)时检查更完整,包括字体是否嵌入。

权限说明 ​

只读取图片文件,不联网,不执行其他命令。

局限 ​

  • 只管数据图。系统架构图建议用 draw.io、PowerPoint 画,导出 PDF。
  • 不会为了好看修改、平滑或删除数据点。