学术论文图表出版规范指南:AI-Research-SKILLs academic-plotting 技能的多会议风格体系
【免费下载链接】AI-Research-SKILLsComprehensive open-source library of AI research and engineering skills for any AI model. Package the skills and your claude code/codex/gemini agent will be an AI research agent with full horsepower. Maintained by Orchestra Research.项目地址: https://gitcode.com/gh_mirrors/ai/AI-Research-SKILLs
本文是 AI-Research-SKILLs 仓库中academic-plotting技能配套的**出版样式规范(Publication Style Guide)**详解,面向需要向 NeurIPS、ICML、ICLR、ACL/EMNLP、AAAI 等 ML/AI 顶会投稿的研究者。文章系统梳理了该技能定义的全套图形标准:通用规则、各会议专属尺寸、色盲安全配色、LaTeX 字体匹配、图例/坐标轴排版约定、架构图风格体系与 LaTeX 集成方法。读完本文,你将掌握一套可直接复制的"从 matplotlib 画图到 LaTeX 成图"的出版级工作流,并能依据仓库中的真实生成脚本与演示项目(demos/scientific-plotting-demo)验证每一个规范的实际落地效果。
一、通用规则:所有论文图表的第一道门槛
style-guide.md 开篇给出了六条适用于任何会议的通用规则,这是判断一张图是否"够格进论文"的最低标准:
- 优先矢量格式— 面向 LaTeX 一律导出 PDF,PNG 仅用于 AI 生成的架构图;
- 栅格图最低 300 DPI;
- 色盲安全配色— 绝不能只靠颜色区分信息,必须叠加标记(marker)、图案(pattern)或文字标签;
- 全篇风格一致— 同一篇论文的所有图必须共享字体、配色与样式;
- 自包含(Self-contained)— 每张图不读 caption 也应能被独立理解;
- 零装饰元素— 禁用阴影、3D 效果、渐变和剪贴画。
这些规则在技能的 SKILL.md 中进一步落实为可执行的 matplotlib 全局配置。仓库演示脚本 gen_fig_experiment_results.py 中的plt.rcParams.update({...})就是第 4、6 条的工程化实现:统一 serif 字体、axes.spines.top/right: False(去掉顶/右边框)、savefig.dpi: 300、grid.alpha: 0.3的浅色网格。也就是说,"风格一致"不应依赖作者自律,而应通过 rcParams 一次性固化。
二、各会议专属尺寸:单栏还是通栏,先看 venue
不同会议的单栏文本宽度不同,图表尺寸必须按目标 venue 计算,否则排版时会溢出栏宽或被强制缩放。style-guide 给出了五大会场的权威尺寸:
| 会议 | 布局 | 单栏宽 | 通栏宽 | 最大高度 | 模板宏 |
|---|---|---|---|---|---|
| NeurIPS | 单栏 | 5.5 in | 5.5 in(即单栏) | 9 in | \usepackage[final]{neurips_2025} |
| ICML | 双栏 | 3.25 in | 6.75 in | 9.25 in | \usepackage{icml2026} |
| ICLR | 单栏 | 5.5 in | 5.5 in(即单栏) | 9 in | \usepackage{iclr2026_conference} |
| ACL / EMNLP | 双栏 | 3.3 in | 6.8 in | — | \usepackage[hyperref]{acl2025} |
| AAAI | 双栏 | 3.3 in | 7.0 in | — | — |
需要注意两点:
- NeurIPS 和 ICLR 是单栏论文,所谓"通栏"就是整页文本宽度 5.5 in,不存在
figure*通栏环境;ICML、ACL、AAAI 是双栏论文,跨两栏的宽图必须使用\begin{figure*}。 - 这些数值与仓库中的 LaTeX 模板目录一一对应:NeurIPS 模板见 20-ml-paper-writing/ml-paper-writing/templates/neurips2025、ICLR 见 iclr2026、ICML 见 icml2026、AAAI 见 aaai2026。
在代码侧,尺寸通过figsize=(宽, 高)以英寸为单位指定。data-visualization.md 提供了对应常量,例如 NeurIPS/ICLR 单栏(5.5, 3.5)、ICML 单栏(3.25, 2.5)、ICML 通栏(6.75, 2.5)、ACL 通栏(6.8, 3.0)。仓库演示的 CDF 三面板图 即采用figsize=(9.5, 2.8)的横排多面板布局,属于双栏通栏场景。
三、配色体系:色盲安全是底线,梯度图按用途选 colormap
3.1 推荐的色盲安全调色板("deep" 变体)
style-guide 提供了一组在所有类型色觉缺陷下均可区分的 8 色深色调色板,适合折线与柱状图:
# "deep" variant — high contrast, good for lines and bars PALETTE_DEEP = [ "#4C72B0", # blue "#DD8452", # orange "#55A868", # green "#C44E52", # red "#8172B3", # purple "#937860", # brown "#DA8BC3", # pink "#8C8C8C", # gray ]仓库演示脚本 gen_fig_experiment_results.py 原样使用了这组颜色(blue/orange/green/red/purple/brown/pink/gray),并进一步规定语义:"ours" 用橙色#DD8452突出、baseline 用蓝色#4C72B0。这与 style-guide 的 Two-Color Schemes 建议一致。
3.2 双色方案(ours vs. baseline)
论文中"我们的方法 vs 基线"是最常见的对比场景,style-guide 给出两套高对比组合:
# High contrast pair OURS = "#C44E52" # red — stands out BASELINE = "#8C8C8C" # gray — recedes # Alternative pair OURS = "#4C72B0" # blue BASELINE = "#DD8452" # orange核心思想是一暖一冷、一"进"一"退":突出色(红/蓝)吸引注意力,退后色(灰/橙)降低视觉权重。在 SKILL.md 的数据图工作流中,这套思想体现为OUR_COLOR = "#E76F51"(珊瑚红)与BASELINE_COLOR = "#B0BEC5"(冷灰)的语义色对。
3.3 连续数据与热力图:按用途选 colormap
| 使用场景 | Colormap | 代码 |
|---|---|---|
| 单变量(0 到最大值) | Blues | cmap="Blues" |
| 发散数据(负到正) | RdBu_r | cmap="RdBu_r" |
| 感知均匀(perceptually uniform) | viridis | cmap="viridis" |
| 相关矩阵 | coolwarm | cmap="coolwarm" |
| Attention 权重 | YlOrRd | cmap="YlOrRd" |
data-visualization.md 补充了更细的选择:发散 colormap 用于相关/差分图时应设置center=0, vmin=-1, vmax=1;sns.light_palette("#264653", as_cmap=True)可生成与正文配色一致的单色渐变。
3.4 必须避免的颜色
- 纯红 + 纯绿— 约 8% 的男性无法区分;
- 彩虹/jet colormap— 感知不均匀,具有误导性;
- 白色背景上的浅黄— 对比度不足;
- 霓虹/高饱和色— 在学术论文中显得不专业。
四、排版规范:字体、字号与数学符号
4.1 与 LaTeX 文档字体匹配
五大会议的正文字体统一为Times,因此 matplotlib 图表应做同样设置:
| 会议 | 文档字体 | 图表字体设置 |
|---|---|---|
| NeurIPS / ICML / ICLR / ACL / AAAI | Times | font.family: serif,font.serif: Times New Roman |
SKILL.md 中的出版样式模板给出了完整 rcParams 写法:
plt.rcParams.update({ "font.family": "serif", "font.serif": ["Times New Roman", "DejaVu Serif"], "font.size": 10, "axes.titlesize": 11, "axes.titleweight": "bold", "axes.labelsize": 10, "legend.fontsize": 8.5, "legend.frameon": False, "figure.dpi": 300, "savefig.dpi": 300, "savefig.bbox": "tight", "axes.spines.top": False, "axes.spines.right": False, "axes.grid": True, "grid.alpha": 0.15, "grid.linestyle": "-", "lines.linewidth": 1.8, "lines.markersize": 5, })注意># For inline math ax.set_xlabel(r"Number of parameters $N$") # For display math ax.set_ylabel(r"Loss $\mathcal{L}(\theta)$") # Greek letters ax.set_xlabel(r"Learning rate $\alpha$") # Subscripts/superscripts ax.set_ylabel(r"$R^2$ score")
五、布局约定:图例、网格、坐标轴与多面板标签
5.1 图例放置优先级
- 图内(左上或右上)— 空间允许时优先;
- 图下方—
bbox_to_anchor=(0.5, -0.15), loc="upper center", ncol=N; - 图右侧—
bbox_to_anchor=(1.05, 1), loc="upper left"(会占用额外宽度)。
# Clean legend (no frame, no extra spacing) ax.legend(frameon=False, loc="upper left", handlelength=1.5) # External legend below ax.legend(frameon=False, bbox_to_anchor=(0.5, -0.15), loc="upper center", ncol=4)仓库演示的多面板爆突发强度图 fig_burst_intensity.png 采用了"共享图例置顶"的变体:fig.legend(..., loc="upper center", ncol=4, bbox_to_anchor=(0.5, 1.02)),避免 12 个子图重复绘制图例。
5.2 网格线
# Subtle grid (recommended) ax.grid(True, alpha=0.3, linestyle="--", linewidth=0.5) # Major grid only (for log-scale plots) ax.grid(True, which="major", alpha=0.3, linestyle="--") ax.grid(True, which="minor", alpha=0.1, linestyle=":")5.3 坐标轴样式
# Remove top and right spines (clean look) ax.spines["top"].set_visible(False) ax.spines["right"].set_visible(False) # Reduce tick padding ax.tick_params(axis="both", which="major", pad=3)5.4 多面板标签 (a)(b)(c)
# Standard (a), (b), (c) labels for i, ax in enumerate(axes.flat): ax.set_title(f"({chr(97 + i)})", loc="left", fontweight="bold", fontsize=11) # Or as text annotation ax.text(-0.1, 1.05, "(a)", transform=ax.transAxes, fontsize=12, fontweight="bold", va="top")data-visualization.md 建议用transform=ax.transAxes的坐标(如(-0.12, 1.05))将标签钉在子图左上角,不随数据范围变化。仓库 CDF 图的实现则使用ax.set_title("(a) QoE", ...)的简化方式,两者皆符合规范(见 gen_fig_experiment_results.py)。
六、架构图/系统图的风格标准
style-guide 针对AI 生成的架构图单独定义了配色与排版体系(该工作流详见 diagram-generation.md 与 SKILL.md 的 Workflow 1)。
6.1 专业图表调色板
Section accents: Blue #4A90D9, Teal #5BA58B, Amber #D4A252, Slate #7B8794 Failure/error: Red #D94A4A (dashed lines) Section fill: #F7F7F5 (very pale warm gray) Box borders: #DDDDDD Box fill: #FFFFFF Primary text: #333333 Secondary text: #666666 Background: #FFFFFF6.2 布局模式速查
| 模式 | 适用场景 | 描述 |
|---|---|---|
| 横向条带(Horizontal bands) | 分层架构 | 分区块纵向堆叠,框内元素横向排布 |
| 从左到右流程(Left-to-right flow) | 顺序流水线 | 输入 → 处理 → 输出 |
| 中心辐射(Hub-and-spoke) | 中心组件 | 中心节点向外辐射连线 |
| 网格(Grid) | 组件矩阵 | 规则排列便于对比 |
| 树(Tree) | 层级决策 | 自上而下的分支结构 |
6.3 箭头约定
| 箭头类型 | 样式 | 用途 |
|---|---|---|
| 数据流 | 实线,颜色随源组件 | 正常信息传递 |
| 控制流 | 实线,灰色 | 编排信号 |
| 错误/失败 | 虚线,红色 | 失败路径、反驳路径 |
| 可选 | 点线,灰色 | 条件路径 |
| 双向 | 双箭头 | 相互依赖 |
这些约定在演示项目的 Gemini 架构图 prompt 中得到完整实践:Andes 架构图中正常请求用实线、抢占(Preempt)路径用dashed #BF616A红色、token 交付流用绿色实线(见 gen_fig_andes_architecture_gemini.py 的 SECTION 5 — CONNECTIONS,8 条箭头逐条规定了 source、target、style、color、label 与路由方向)。
七、LaTeX 集成:从 PDF 到最终排版
7.1 基础插图
\begin{figure}[t] \centering \includegraphics[width=\linewidth]{figures/fig_name.pdf} \caption{Clear description of what the figure shows. Best viewed in color.} \label{fig:name} \end{figure}7.2 通栏图(双栏会议)
\begin{figure*}[t] \centering \includegraphics[width=\textwidth]{figures/fig_overview.pdf} \caption{System overview showing the three main components.} \label{fig:overview} \end{figure*}7.3 并排子图
\begin{figure}[t] \centering \begin{subfigure}[b]{0.48\linewidth} \centering \includegraphics[width=\linewidth]{figures/fig_a.pdf} \caption{Training loss} \label{fig:a} \end{subfigure} \hfill \begin{subfigure}[b]{0.48\linewidth} \centering \includegraphics[width=\linewidth]{figures/fig_b.pdf} \caption{Evaluation accuracy} \label{fig:b} \end{subfigure} \caption{Training dynamics. (a) Loss decreases steadily. (b) Accuracy plateaus after 50K steps.} \label{fig:training} \end{figure}7.4 Caption 最佳实践
- 第一句话:说明图展示的内容(可独立理解);
- 关键结论:读者应该注意到的要点;
- 颜色说明:如果颜色承载语义,注明 "Best viewed in color";
- 不要写 "Figure X shows..."— 图号已由 LaTeX 自动生成。
好的示例:"Training loss across model sizes. Larger models converge faster and to lower final loss." 坏的示例:"Figure 3 shows the training loss for different model sizes."
八、无障碍(Accessibility)检查清单
投稿前逐项核对:
- 灰度打印下依然可读(print-friendly)
- 最终印刷尺寸下无小于 7pt 的文字
- 使用色盲安全调色板
- 除颜色外,使用不同线型/标记区分
- 数据与背景高对比度
- 坐标轴标签存在且可读
- 图例清晰且不与数据重叠
九、规范落地:仓库中的真实案例
上述规范并非纸上谈兵,仓库的 scientific-plotting-demo 以 Andes 论文为素材,完整演示了两条工作流的落地,可作为逐条对照规范的可运行范例:
- Workflow 1(AI 架构图):
gemini-3-pro-image-preview+ Modern Minimal 风格 + Nord 调色板,6 段式 prompt,生成 3 次取最优,脚本见 gen_fig_andes_architecture_gemini.py。 - Workflow 2(数据图):matplotlib 实现 CDF、多面板、柱状图与 QoE 定义示意,脚本见 gen_fig_experiment_results.py,其输出(如 CDF 对比图、改进汇总柱状图)在配色、面板标签、去顶/右边框、数值标注等方面与本文规范逐条吻合。
若需要完整的数据图模式库(训练曲线、分组柱状、热力图、散点、排行榜、多面板、小提琴图、堆叠条、scaling law 等九类图表的标准实现),可继续阅读 contenteditable="false">【免费下载链接】AI-Research-SKILLsComprehensive open-source library of AI research and engineering skills for any AI model. Package the skills and your claude code/codex/gemini agent will be an AI research agent with full horsepower. Maintained by Orchestra Research.项目地址: https://gitcode.com/gh_mirrors/ai/AI-Research-SKILLs
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考