使用 Python(matplotlib)或 R(ggplot2)为《自然》系列期刊生成出版级图表。用户需要创建、润色或重新设计图表时触发。
Generate 符合自然组合视觉标准的多面板科学人物: 正确排版、 语义色彩调色板、 可访问设计、 可编辑 SVG 输出
功能概述
Generate 符合自然组合视觉标准的多面板科学人物: 正确排版、 语义色彩调色板、 可访问设计、 可编辑 SVG 输出是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
核心要点
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
结果检查与注意事项
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
nature-figure
用途
生成符合 Nature 期刊系列视觉规范的多面板科研图表:字体规范、语义化配色方案、无障碍可访问设计,并输出可编辑的 SVG 格式文件。
触发条件
当用户提及以下任一内容时激活:
- "画图" / "figure" / "plot" / "科研绘图"
- "Nature figure" / "publication figure" / "publication plot"
- "matplotlib" / "ggplot" / "seaborn"
- "配色" / "color palette" / "color scheme"
- 希望优化或重排现有图表
Nature 图表规范
字体排印(Typography)
- 字体族:使用 Arial 或 Helvetica(无衬线字体;图表中严禁使用 Times New Roman)
- 印刷成品最小字号:7 pt(适用于坐标轴标签、刻度标签)
- 面板标签(a, b, c…):8 pt 加粗,小写字母
- 图表标题(如有):不得嵌入图中,应置于图注(legend)内
- 所有文字必须可编辑(禁止光栅化)
尺寸与分辨率
| 格式 | 宽度 | 分辨率 |
|---|---|---|
| 单栏 | 89 mm(3.5 英寸) | ≥300 DPI |
| 1.5 栏 | 120 mm(4.7 英寸) | ≥300 DPI |
| 双栏 | 183 mm(7.2 英寸) | ≥300 DPI |
| 线条图(Line art) | 不限 | 600 DPI |
| 最终投稿文件 | PDF 或 TIFF | 优先使用矢量格式 |
配色方案(Nature 认可、色觉障碍友好)
NATURE_COLORS = {
"blue": "#4878CF",
"red": "#D65F5F",
"green": "#6ACC65",
"orange": "#EE854A",
"purple": "#956CB4",
"teal": "#82C6E2",
"brown": "#D5BB67",
"gray": "#8C8C8C",
# 色觉障碍友好主色对:
"cb_blue": "#0072B2",
"cb_orange":"#E69F00",
}
- 禁止同时使用纯红色与纯绿色(存在色觉障碍冲突)
- 为保障可访问性,须结合填充符号与不同几何形状,不可仅依赖颜色区分
- 灰度模式下各元素仍须清晰可辨
面板结构(Panel Architecture)
- 每个面板传达一个明确结论
- 面板 (a):概览图 / 示意图 / 代表性图像
- 面板 (b–d):定量证据支持
- 末尾面板:对比分析或普适性验证
- 面板标签为 a, b, c(小写加粗,置于左上角)
- 白色背景;网格线极简(浅灰色,0.5 pt 线宽)
- 杜绝“图表垃圾”(chartjunk):移除顶部与右侧坐标轴边框(spines)
统计标注(Statistical Annotations)
- 误差线(Error bars):图注中必须明确定义(如 mean ± s.d. 或 ± s.e.m.)
- 显著性标记:*, **, ***, **** 分别对应 p < 0.05、0.01、0.001、0.0001;推荐直接报告精确 p 值
- 样本量 n 必须注明(例如:n = 5 次独立实验)
- 箱线图(Box plots):需标示中位数、四分位距(IQR)、须线延伸至 1.5×IQR,并叠加原始数据点
工作流程
第 0 步:从数据文件自动生成图表(最快路径)
若用户提供 CSV、Excel 或 JSON 数据文件:
python3 ~/.openclaw/workspace/skills/nature-paper-hub/scripts/auto_figure.py --input--output ~/Downloads/figure_ .pdf --title "[figure title]" --xlabel "X axis label" --ylabel "Y axis label" --type [auto|line|bar|scatter|heatmap|box]
该脚本将自动识别列类型、选择合适图表类型、应用 Nature 风格,并输出 PDF 与 PNG 文件。
第 1 步:收集需求(尚无数据文件时)
向用户提问:
- 您拥有哪些数据?(可粘贴 CSV 内容、描述各列含义,或直接提供数值)
- 需要几个面板?每个面板展示什么内容?
- 图表宽度要求:单栏 / 1.5 栏 / 双栏?
- 编程语言偏好:Python(matplotlib/seaborn)还是 R(ggplot2)?
- 是否有特定配色要求,或目标期刊子风格(sub-style)?
第 2 步:生成图表代码
Python 模板(matplotlib):
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import numpy as np
# --- Nature 风格设置 ---
plt.rcParams.update({
'font.family': 'Arial',
'font.size': 8,
'axes.linewidth': 0.8,
'axes.spines.top': False,
'axes.spines.right': False,
'xtick.major.width': 0.8,
'ytick.major.width': 0.8,
'xtick.major.size': 3,
'ytick.major.size': 3,
'xtick.direction': 'out',
'ytick.direction': 'out',
'figure.dpi': 300,
'savefig.dpi': 300,
'savefig.bbox': 'tight',
'savefig.pad_inches': 0.05,
'pdf.fonttype': 42, # PDF 中文字可编辑
'ps.fonttype': 42,
})
COLORS = {
"blue": "#4878CF", "red": "#D65F5F", "green": "#6ACC65",
"orange": "#EE854A", "purple": "#956CB4", "teal": "#82C6E2",
"cb_blue": "#0072B2", "cb_orange": "#E69F00",
}
# --- 图表布局 ---
fig = plt.figure(figsize=(7.2, 4.0)) # 双栏宽度,高度可调
gs = gridspec.GridSpec(1, 3, figure=fig, wspace=0.4, hspace=0.4)
ax_a = fig.add_subplot(gs[0])
ax_b = fig.add_subplot(gs[1])
ax_c = fig.add_subplot(gs[2])
# --- 面板标签 ---
for ax, label in zip([ax_a, ax_b, ax_c], ['a', 'b', 'c']):
ax.text(-0.15, 1.05, label, transform=ax.transAxes,
fontsize=8, fontweight='bold', va='top', ha='right')
# --- 此处填入您的数据 ---
# ax_a: ...
# ax_b: ...
# ax_c: ...
plt.savefig('figure1.pdf', format='pdf')
plt.savefig('figure1.png', dpi=300)
print("Saved: figure1.pdf, figure1.png")
R 模板(ggplot2):
library(ggplot2)
library(patchwork)
# Nature 主题
theme_nature <- function() {
theme_classic(base_size = 8, base_family = "Arial") +
theme(
axis.line = element_line(linewidth = 0.5),
axis.ticks = element_line(linewidth = 0.5),
axis.ticks.length = unit(2, "pt"),
strip.background = element_blank(),
legend.key.size = unit(3, "mm"),
plot.margin = margin(2, 2, 2, 2, "mm")
)
}
nature_colors <- c(
blue = "#4878CF", red = "#D65F5F", green = "#6ACC65",
orange = "#EE854A", purple = "#956CB4", teal = "#82C6E2"
)
# --- 此处填入您的图表代码 ---
# p1 <- ggplot(...) + theme_nature()
# p2 <- ggplot(...) + theme_nature()
# combined <- p1 | p2
# ggsave("figure1.pdf", combined, width = 183, height = 80, units = "mm", dpi = 300)
第 3 步:校验(Validate)
输出前务必检查以下各项:
- 所有元素字体 ≥ 7 pt
- 无顶部/右侧坐标轴边框(spines)
- 使用色觉障碍友好配色方案
- 误差线定义完整
- 面板标签存在且格式正确(a, b, c 小写加粗)
- 分辨率 ≥ 300 DPI(线条图需 ≥ 600 DPI)
- 图表宽度匹配所选栏宽格式
- 输出 PDF/SVG 以确保矢量可编辑性
第 4 步:图注(Figure legend)
生成配套的图注文字:
- 以加粗 “Figure X |” 开头
- 简短标题(一句话)
- 每面板一句说明
- 误差线定义
- 样本量 n 值及所用统计检验方法
- 图像类图表需注明比例尺(scale bar)定义
常用图表类型
折线图(Line plot,适用于时间序列 / 趋势分析)
使用带标记点的实线;不同组别采用不同线型 + 颜色区分。
柱状图(Bar chart)
类别较多时建议使用横向柱状图;应在柱体上叠加原始数据点。
使用 plt.bar() 并设置 edgecolor='black', linewidth=0.5。
散点图(Scatter plot)
若用于展示相关性,须添加回归线及 95% 置信区间(CI)。 图中需标明 Pearson/Spearman 相关系数 r 与 p 值。
热图(Heatmap)
相关性分析宜用发散型色阶(如 RdBu_r),强度表达宜用顺序型色阶。
必须包含带标签和单位的色标(colorbar)。
箱线图 / 小提琴图(Box/Violin plot)
必须叠加原始数据点(使用 stripplot 或 geom_jitter)。
需注明每组样本量 n。
示意图 / 机制图(Schematic / Mechanism diagram)
推荐使用 BioRender(biorender.com)或 Inkscape 绘制示意图。 导出为 SVG 后嵌入主图。
输出内容
向用户提供以下全部内容:
- 完整、可直接运行的 Python 或 R 代码
- 按正确格式保存文件的操作说明(PDF + PNG)
- 配套的图注(legend)文字
- 投稿前需自查的核对清单
热门AI工具
相关专题
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。
0
2026.10.22
PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.5万人学习
共6课时 | 54.7万人学习
