关于 general-figure-guide
general-figure-guide 是评估程序生成或手工制作科学图表的检查指南,帮助研究人员在投稿前发现可读性、输出格式、无障碍性和图像调整问题。
主要功能
- 01检查标签、坐标轴、图例和点拥挤
- 02选择栅格或矢量输出格式
- 03采用色觉友好的视觉编码
- 04统一应用图像调整
- 05检查导出的图表
适用场景
- 01投稿前审查图表
- 02准备适合印刷的图像文件
- 03提升数据可视化的无障碍性
- 04检查多面板图表的一致性
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ jaechang-hits/ sciagent-skills --skill general-figure-guide安装后在 Claude Code 中输入/general-figure-guide确认已加载。
详细介绍
科学图表质量通用指南
概述
本指南提供了一份通用质量检查清单,用于评估科学图表,无论图表是通过编程生成(matplotlib、seaborn、R/ggplot2),还是手动制作。本指南聚焦于所有期刊都常见、且在自动生成图表时容易被忽略的视觉可读性问题。
关键概念
视觉可读性
图表必须能清楚传达数据,无需读者猜测。最常见的可读性问题包括标签重叠、文字被裁切并超出图表边界、坐标轴缺失或未标注、图例缺失、数据筛选错误导致绘图区为空,以及数据点过于密集、融合成难以辨认的一团。
分辨率和输出格式
科学图表通常要求栅格输出(TIFF、PNG、JPEG)达到 300+ DPI,线稿和图表则使用矢量格式(PDF、EPS、SVG)。图表优先使用矢量格式,因为放大时不会损失质量。栅格格式适用于照片和显微图像。
色彩无障碍
约 8% 的男性存在某种形式的色觉缺陷。仅依赖红绿色差异的图表会使这些读者无法辨别内容。请使用色盲友好型调色板(蓝橙配色,或 viridis/cividis 色图),增加纹理或形状差异,并在提交前使用色盲模拟器检查图表。
统一调整图像
所有主要期刊都要求对整张图像统一调整亮度、对比度和颜色。选择性增强特定区域(例如调整某一条凝胶泳道)会被视为数据操纵,并可能导致稿件被任何期刊拒稿。务必在 Methods 部分记录处理步骤,并保留未经处理的原始文件。
决策框架
Is the figure a generated plot or a photograph?
├── Generated plot (matplotlib, ggplot2, seaborn)
│ ├── Export as vector (PDF, SVG, EPS) → preferred
│ └── Export as raster → 300+ DPI minimum, PNG or TIFF
├── Photograph or micrograph
│ └── Export as raster → 300+ DPI, TIFF preferred
└── Multi-panel composite
├── Assemble panels first, then export as single file
└── Use consistent font sizes and label styles across panels
| 问题 | 检测方法 | 修复方法 |
|---|---|---|
| 标签重叠 | 文字在坐标轴或图例上明显相互遮挡 | 旋转标签、减小字号或增大图表尺寸 |
| 文字被裁切 | 标签或标题在图表边缘被截断 | 使用 tight_layout() 或 constrained_layout 增加边距 |
| 坐标轴或图例缺失 | 缺少坐标轴标签、单位或图例 | 添加 xlabel、ylabel、legend() 调用 |
| 绘图区为空 | 画布空白,只有坐标轴,没有可见数据 | 检查数据筛选、列名和绘图函数参数 |
| 数据过于密集 | 数据点融合成一片 | 减小标记尺寸、增加透明度(alpha),或使用密度图 |
最佳实践
- 每次生成图表后都进行视觉检查:在继续操作前,检查渲染后的图像是否存在标签重叠、文字被裁切、坐标轴/图例缺失、绘图区空白或数据过于密集等问题
- 使用
tight_layout()或constrained_layout=True:这些设置可防止文字超出图表边界,这是 matplotlib 中最常见的布局问题 - 在创建图表时设置 DPI:配置
fig.set_dpi(300)或plt.savefig(..., dpi=300),从一开始就确保输出达到出版质量 - 将图表导出为矢量格式:图表和示意图使用 PDF、SVG 或 EPS。栅格格式(PNG、TIFF)仅用于照片和显微图像
- 统一各面板的字体大小:多面板图表中的所有文字应使用相同字体系列,字号也应相近(标签通常为 6-8 pt,面板标识为 8 pt)
- 为密集散点图添加透明度:绘制数千个数据点时使用
alpha=0.3-0.5,以显示密度分布,而不是形成一片实心区域 - 为所有坐标轴标注单位:每个坐标轴都应标出测量参数和括号内的单位(例如,“时间(小时)”“浓度(nM)”)
常见陷阱
- 保存前未检查生成的图表:自动化流水线经常会生成存在布局问题的图表,直到审核时才会发现
- 避免方法:始终渲染并目视检查每张图;如果通过程序审核,请检查文本边界框是否重叠
- 坐标轴标签或标题被裁切:matplotlib 的默认边距通常会裁掉较长的标签或总标题
- 避免方法:调用
fig.tight_layout(),或使用constrained_layout=True创建图表
- 避免方法:调用
- 多系列图表缺少图例:包含多条线或多个分组的图表若没有图例,将难以阅读
- 避免方法:绘制多个系列时,始终调用
ax.legend();确认图例条目与数据相符
- 避免方法:绘制多个系列时,始终调用
- 大 N 散点图过于拥挤:默认设置下,点数超过 10,000 的散点图会变成一团实心色块
- 避免方法:对于大型数据集,使用
alpha透明度、六边形分箱图或核密度估计
- 避免方法:对于大型数据集,使用
- 以屏幕分辨率(72 DPI)保存:默认屏幕 DPI 生成的图表无法满足期刊印刷要求
- 避免方法:在
savefig()中始终指定dpi=300(最低要求),或在创建图表时在图表对象上设置该值
- 避免方法:在
协议指南
- 设置图表尺寸和 DPI:绘图前,在图表对象上配置目标宽度(期刊栏宽)、纵横比和 DPI(最低 300)
- 使用已预先配置好设置的绘图库生成图表
- 目视检查渲染后的输出,确认是否存在以下问题:
- 标签或注释重叠
- 图表边界处的文本被裁切
- 缺少坐标轴标签、单位或图例
- 绘图区为空(数据未渲染)
- 数据点过于拥挤或难以区分
- 如果发现任何问题,请针对性地修复后重新生成(调整布局、字体大小、边距、透明度或图表尺寸)
- 以正确的格式导出:图表使用矢量格式(PDF/EPS/SVG),照片使用栅格格式(300+ DPI 的 TIFF/PNG)
- 验证保存的文件:重新打开导出的文件,确认其与屏幕上的渲染结果一致
延伸阅读
- Matplotlib 图表布局指南 -- tight_layout 和 constrained_layout 的用法
- 让图表更出色的十条简单规则(PLOS) -- 科学图表设计的一般原则
- 观点:Nature Methods 专栏 -- 科学数据的视觉设计原则
相关技能
nature-figure-guide-- Nature 特定的图表要求cell-figure-guide-- Cell Press 图表要求science-figure-guide-- Science (AAAS) 图表要求pnas-figure-guide-- PNAS 图表要求
评论
支持 Markdown