用途:把绘图代码生成的图导出为可直接送印的出版级图片,使矢量结构、密集数据层、文字与颜色在排版和印刷流程中都能正确保留。
主要能力:提出“图由四层组成”的框架——矢量结构(坐标轴、刻度、拟合线、注释)、栅格数据层(十万至千万点的散点、热图、显微图)、文字(需保持可选中可编辑)、颜色编码(感知均匀、色觉缺陷安全、灰度可读)。核心做法是混合图:只栅格化密集数据层,其余保持矢量。
必要用法:Python 中 ax.scatter(..., rasterized=True) 配合 fig.savefig('fig.pdf', dpi=600);R 中用 ggrastr::rasterise(geom_point(size=0.3), dpi=600)。字体方面设置 mpl.rcParams['pdf.fonttype']=42、ps.fonttype=42、svg.fonttype='none';R 用 cairo_pdf 嵌入字体,栅格用 ragg::agg_png()/agg_tiff()。颜色上建议用 viridis/cividis 等感知均匀色图,分类用 Okabe-Ito 八色色觉安全调色板,并做灰度复印测试。格式上 PDF 为多数期刊默认,EPS 不支持透明,TIFF 用 LZW,避免对含文字线条的图用 JPEG。
适用场景:单细胞 UMAP/tSNE、GWAS 曼哈顿图等密集点图,以及需要精确栏宽(如 89 mm)和可编辑文字的投稿图。
限制:matplotlib 与 ggplot2 只能在 RGB 下作图,无法直接输出真正的 CMYK;EPS 无 alpha 通道;矢量图 DPI 无意义,DPI 只影响栅格层与栅格格式;bbox_inches='tight' 会导致尺寸不确定;PDF 会写入 CreationDate 造成字节不稳定,可用 metadata={'CreationDate': None} 或 SOURCE_DATE_EPOCH 处理。期刊具体规格需在投稿时以目标期刊作者指南为准。