深色模式
paper-figure:论文配图
按会议模板的栏宽画出尺寸和字号准确的数据图,避免 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。
- 不会为了好看修改、平滑或删除数据点。