| 数据特征 | 推荐图表 | 不推荐 |
|---|---|---|
| 两组连续变量比较 | 箱线图 + 散点叠加 | 纯柱状图(隐藏分布) |
| 多组比较 | 分组箱线图/小提琴图 | 堆叠柱状图 |
| 差异表达 | 火山图 | 纯表格 |
| 基因表达热图 | 聚类热图(ComplexHeatmap) | 无聚类的热图 |
| 生存分析 | KM 曲线 + 风险表 | 无风险表的 KM 曲线 |
| 富集分析 | 气泡图/棒棒糖图 | 纯柱状图 |
| 单细胞聚类 | UMAP/tSNE | PCA(低维不够) |
| 相关性 | 散点图 + 拟合线 + R²/P | 相关矩阵热图(样本少时) |
| 比例/组成 | 堆叠柱状图/河流图 | 饼图(多组时) |
| 时间序列 | 折线图 + 置信区间 | 纯散点 |
nature_colors = ['#E64B35', '#4DBBD5', '#00A087', '#3C5488',
'#F39B7F', '#8491B4', '#91D1C2', '#DC0000',
'#7E6148', '#B09C85']science_colors = ['#3B4992', '#EE0000', '#008B45', '#631879',
'#008280', '#BB0021', '#5F559B', '#A20056',
'#808180', '#1B1919']cell_colors = ['#C75127', '#F6BD60', '#84A59D', '#F28482',
'#5B8E7D', '#BC4749', '#A7C957', '#386641',
'#6A4C93', '#1982C4']# Okabe-Ito palette
cb_colors = ['#E69F00', '#56B4E9', '#009E73', '#F0E442',
'#0072B2', '#D55E00', '#CC79A7', '#000000']- 单栏图:宽 89mm(3.5 inch)
- 1.5 栏图:宽 120mm(4.7 inch)
- 双栏图:宽 183mm(7.2 inch)
- 高度:根据内容调整,保持比例协调
- 线图/矢量:PDF/SVG(首选)
- 位图/照片:至少 300 DPI,推荐 600 DPI
- 组合图:矢量 + 高分辨率位图
- 推荐:Arial、Helvetica(多数期刊接受)
- 最小字号:6pt(打印后可读)
- 标题:10-12pt,轴标签:8-10pt,刻度:7-8pt
Python (matplotlib):
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(3.5, 3)) # 单栏
# ... 绑图代码 ...
fig.savefig('figure.pdf', dpi=600, bbox_inches='tight', transparent=True)
fig.savefig('figure.png', dpi=600, bbox_inches='tight', transparent=True)R (ggplot2):
library(ggplot2)
p <- ggplot(data, aes(x, y)) +
theme_classic(base_size = 10, base_family = "Arial") +
theme(
axis.text = element_text(size = 8, color = "black"),
axis.title = element_text(size = 10),
legend.text = element_text(size = 8)
)
ggsave("figure.pdf", p, width = 89, height = 70, units = "mm", dpi = 600)生成图表后自查:
- 坐标轴有标签和单位
- 图例清晰完整
- 字体大小足够(打印后可读)
- 配色区分度足够(打印灰度也能区分更佳)
- 统计标注正确(*, **, ***, ns)
- 无多余装饰(网格线、3D效果)
- 数据点数量合理展示(不遮挡)