name: nature-figure-style version: 2.0.0 description: "Nature 期刊(Nature/Nature Photonics/Nature Communications 等)的两类绘图风格规则与可执行模板:数据图表(matplotlib)和架构图/示意图(Python/TikZ)。当用户要求画 Nature 风格的论文配图、数据图、折线图、柱状图、热力图、谱图、架构图、schematic、光路图、设备示意图、流程框图,或要求复刻 Nature/Science 论文风格、做投稿正图、制图、figure,又或者直接说『按 Nature 风格画』『论文配图风格』『paper figure』时务必使用本 skill。本 skill 包括:基于 22 篇 Nature/Nature Photonics 论文实证观察的尺寸/字号/线宽/坐标轴规范、recurring 配色策略与 material color recipe、可直接 plt.style.use 的 mplstyle、可调用的架构图组件函数(含 isometric chip、glow beam)、以及成品检查清单。"
nature-figure-style
复刻 Nature 系列期刊论文配图风格的工作集。本 skill v2.0 的所有数值规则都基于 /Users/wishingcat/Research/Nature 绘图/Nature 期刊绘图风格提取/figures_extracted/ 中 22 篇 Nature / Nature Photonics 论文的实证观察(2019–2026),见 references/empirical_observations.md。
触发后的工作流(按这个顺序走)
用户给图任务
↓
判断是『数据图表』还是『架构/示意图』
↓
┌─────────────────┴──────────────────┐
│ │
数据图表 架构/示意图
(折线/柱状/热力/谱) (光路/系统/方块流程/3D 芯片)
│ │
1. setup_nature_style() 1. 决定:A. 2D vector 块图
(读 assets/nature.mplstyle) B. 3D isometric chip
2. 读 references/data_plot.md C. 混合 (3D 上 + 2D 下)
3. 选色:默认 nature_photonics_modern 2. 读 references/architecture_diagram.md
(Yao 2025 / Jin 2025 复用率最高) 3. 用 assets/nature_figure_helpers.py
4. 出图后跑 references/checklist.md 中的组件函数 + MATERIAL_COLORS
+ COMB_COLORS
4. 选色:见 references/color_palettes.md
5. 出图后跑 references/checklist.md
第一步永远是判断类型,因为两类风格走完全不同的代码路径。混合型(一张大 figure 里既有架构又有数据子图)按子图分别处理。
核心不变量(无论哪类图都要满足)
实证观察:22 篇里 100% 的论文都遵守这五条;违反任何一条都会让人一眼看出"不像 Nature":
- 字体一律 sans-serif(Helvetica / Arial / Liberation Sans)。绝对不要用 serif(Times New Roman 是 Word 的味道,不是论文图的味道)。
- panel 标号是粗体小写 a / b / c(不是 A、不是 (a)、不是 1.2.3)。固定贴左上角,与子图对齐,9–10 pt 加粗。
- 正图字号 6–9 pt:刻度数字 6–7 pt,轴标签 7–8 pt,panel 字母 9–10 pt 加粗。这是按 Nature 实际印刷尺寸来的——单栏 89 mm 宽,双栏 183 mm 宽。
- Tick 方向是 inward(
direction='in')。这是 22 篇里 100% 命中的最稳定特征。注意:本 skill 的旧版(v1.0)说 outward 是默认——那是错的,已修正。 - 线宽要细:坐标轴 0.6 pt,数据线 0.8–1.2 pt,参考虚线 0.5–0.7 pt。粗线条是 PPT 味,不是论文味。
关于 spine(轴线方框)的两个流派
实证观察的一个意外发现:现代 Nature Photonics 用 四面闭合方框 比 L+B 半框更常见。两个流派同时存在,按场景选:
| 场景 | 推荐 | 例子 |
|---|---|---|
| 谱图(光谱、PSD、频谱) | 闭合方框 | He 2019, Cheng 2025, Geravand 2025 |
| log-log 图(noise、Allan deviation) | 闭合方框 | Cheng 2025, Jin 2025 |
| 极坐标、密集时间序列 | 闭合方框 | Geravand 2025 |
| 简洁的折线图、柱状图 | L+B 半框 | Hu 2021, Feng 2024(部分),早期 Nature Photonics |
| 散点图(强调数据轮廓) | L+B 半框 | Paper 11, Paper 13 |
本 skill 默认走闭合方框(mplstyle 里 axes.spines.top/right: True + xtick.top/ytick.right: True)。要 L+B 半框时显式调用 half_frame(ax)。
配色
数据图:默认 nature_photonics_modern
实证观察:22 篇里 2024–2026 的 Nature Photonics 共有 7 篇用了非常接近的 5 色离散调色板:
nature_photonics_modern = [
"#E63946", # 红 - 主信号 / 实验组
"#F4A261", # 橙 - 副信号 / 中间结果
"#E9C46A", # 金黄 - 参数 3
"#2A9D8F", # 青绿 - 参考 / 模拟
"#264653", # 深蓝 - baseline / dark trace
"#7E3FA8", # 紫 - 5 类以上扩展
"#F46197", # 粉 - 5 类以上扩展
"#888888", # 灰 - 5 类以上扩展
]
锚定论文:Yao 2025、Jin 2025、Kalinin 2025、Wang 2024、Geravand 2025(部分)。
setup_nature_style() 默认就用这套。要切换:
setup_nature_style("nature_photonics_classic")— 早期 NPhoton 习惯(红+蓝+绿+橙)setup_nature_style("nature_journal")— NPG / ggsci 8 色,更偏 Cell / Nature Methods 生物风setup_nature_style("morandi")/("monet")— 严肃 / 柔和 子刊审美
连续 colormap
实证观察:
- viridis 用于 spectrogram、2D 测量矩阵、hyperspectral cube — 安全默认
- inferno / magma 用于强度图、streak camera、super-resolution(Paper 11、Paper 13、Dinani 2025)
- eye diagram 几乎总是黑底 + cyan-green density(He 2019、Geravand 2025、Wang 2024)
- diverging RdBu_r 用于带正负的物理量(band structure、相位、χ⁽²⁾)— Paper 10
- viridis 的暖偏版 也常见于 Jin 2025、Yao 2025 — 即不那么蓝紫的 cyan→yellow→red ramp
- 不用 jet(除非物理量本身需要 hue 对应 wavelength,如 Geravand polar)
详见 references/color_palettes.md。
架构图:material color recipe
实证观察:3D / isometric 芯片图复用率极高的材料配色(见 MATERIAL_COLORS 字典):
| 材料 | hex | 来源 |
|---|---|---|
| Si 衬底 | #1F7C3A |
He 2019, Geravand 2025 |
| LNOI / 薄膜铌酸锂 | #D63E8C (深) / #E58FB1 (浅) |
He 2019, Feng 2024 |
| LTOI / 钽酸锂 | #5E60CE |
Wang 2024 |
| SiO₂ 埋氧 | #E8D8B0 |
He 2019, Cheng 2025 |
| 金电极 | #E5B83A / #F2C83A |
Hu 2021, Feng 2024, Yao 2025 |
| Cu 走线 | #C97B3D |
Geravand 2025 |
| 波导发光 / 模式 | #2A9D8F (teal) |
Yao 2025, Hu 2021 |
| PD / 电子学 | #1E3A78 |
Geravand 2025 |
| Passive 灰 | #BFBFBF |
通用 |
直接 from nature_figure_helpers import MATERIAL_COLORS; MATERIAL_COLORS["lnoi"]。
双梳 / 双激光器配色公约
实证观察:dual-comb / pump-probe 论文有 stable color convention(见 COMB_COLORS):
红 #D6322B = comb 1 / signal / pump
蓝 #1F5FAE = comb 2 / LO / probe
紫 #7E3FA8 = beat / RF / heterodyne
绿 #2A8E3A = SHG / 第二激光 / auxiliary
黄 #F0C03A = EDFA / pump-fiber path
灰 #888888 = feedback / control(虚线)
锚定论文:Giorgetta 2024、Han 2024、Jin 2025、Cheng 2025、Hu 2021。
数据图表(matplotlib)
第 0 步——加载样式:
from nature_figure_helpers import setup_nature_style, add_panel_label
setup_nature_style() # 默认 nature_photonics_modern
# 或者只加载样式不换 cycle:
# import matplotlib.pyplot as plt
# plt.style.use('<skill_dir>/assets/nature.mplstyle')
详细规则见 references/data_plot.md。它讲:
- 坐标轴样式(4-spine vs L+B 何时用)、tick 方向、minor ticks
- 双 y 轴(颜色配对)、log 轴、polar 的具体参数
- legend 位置和样式(无框、inline 替代)
- 误差棒 vs 误差填充带(推荐 band,alpha 0.15–0.25)
- 常见图型(折线、柱状、热力、散点、误差带、eye diagram、Allan deviation)的 matplotlib 模板
架构 / 示意图
详细规则见 references/architecture_diagram.md。它讲:
- 三种典型样式:A. 2D 方块/光路图(vector);B. 3D isometric chip 渲染;C. hybrid(3D 上 + 2D 下,或 photo + vector)— 这是 Nature Photonics 标志性混搭。
- 组件几何(圆角矩形、立体盒、光纤弯曲、激光器图标)
- 光束两种画法:vector 用
draw_optical_path(细色线),3D hero 用draw_glow_beam(多层透明 halo) - 标注引线(callout)的位置策略:thin (0.4–0.5 pt) leader line, 无箭头, 终点小圆点
- 何时用 matplotlib,何时建议外接 Inkscape / Blender
可调用工具:assets/nature_figure_helpers.py 里有:
draw_block(ax, ...)— 圆角矩形功能块draw_optical_path(ax, points, role="signal")— 路径,按 COMB_COLORS 取色draw_glow_beam(ax, p1, p2, ...)— 3D hero 的发光体积光束(Kalinin 风格)draw_laser_source(ax, ...)/draw_lens/draw_mirror/draw_modulator/draw_photodetectordraw_chip_rainbow(ax, ...)— 渐变芯片表面draw_isometric_layer_stack(ax, ..., layers=[("silicon", 1.5), ("sio2", 0.6), ("lnoi", 0.4), ("gold", 0.3)])— 多层 chip 截面(He 2019 / Wang 2024 风)add_panel_label(ax, 'a')— 加粗小写 panel 标号callout(ax, target, text_xy, text)— 细引线标注MATERIAL_COLORS、COMB_COLORS字典
完成后的检查
每张图出完后,必须照 references/checklist.md 走一遍验证。不验证就报告完成 = 80% 概率会有破坏 Nature 感的小毛病(比如 tick 朝外了、panel label 是大写、legend 有多余边框)。
参考资料
references/empirical_observations.md— 22 篇 Nature/NPhoton 论文的实证观察原始记录(v2.0 新增;所有数值规则的依据)references/data_plot.md— 数据图表完整规则references/architecture_diagram.md— 架构图完整规则references/color_palettes.md— 配色场景化建议references/checklist.md— 出图后的检查清单assets/nature.mplstyle— matplotlib 样式文件assets/nature_figure_helpers.py— 架构图组件函数 + 配色字典examples/— 可直接跑的示例(折线、柱状、热力、架构图)
风格的"为什么"(写给将来调优的自己)
Nature 系列论文图的克制感来源于三条物理约束:
- 印刷尺寸小——单栏 89 mm,所以字号必须 6 pt+,线宽必须 0.5 pt+,不然印出来糊。
- 黑白可读——审稿/打印常是黑白,所以信息层级不能只靠颜色,要靠 marker 形状、线型、文字标注。
- 同行评审审美——审稿人看过几千张图,过度装饰(阴影、3D、渐变背景)会被认为不专业。但 局部 的 3D(chip 截面、hero schematic)反而是高分项,因为它能让读者快速理解物理结构。这就是为什么 Nature Photonics 喜欢 "3D 上 + 2D 下" 的混搭。
理解这三条约束就理解了所有规则的来源;遇到本 skill 没覆盖的边角情况,按这三条原则推导即可,并优先回去翻 references/empirical_observations.md 看是否有现成例子。