如何减小R语言qqman包绘制曼哈顿图时轴标签与轴之间的空白
R语言qqman包曼哈顿图空白过大解决方法
qqman的manhattan()函数基于R基础绘图系统开发,轴刻度与标签、标签与标题间的空白可以通过调整基础绘图参数解决,具体方法如下:
- 调整绘图边距参数
调用manhattan()前先用par()函数设置全局绘图区域的边距参数mar,mar四个数值依次对应下、左、上、右四个方向的边距,默认值为c(5, 4, 4, 2) + 0.1,你可以按需缩小对应方向的数值即可减小空白:
# 先设置边距,数值可根据实际显示效果微调 par(mar = c(3, 2, 1, 0.5)) # 运行原有绘图代码 manhattan(Table, chr="CHR", bp="BP", snp="SNP", p="P", suggestiveline = 4.66963295422, genomewideline = 5.97066294989, ylim = c(0, 12), cex = 1.0, cex.axis = 0.5)
- 自定义添加轴标签
如果调整边距后仍觉得轴标签与刻度间距过大,可以先关闭manhattan()自带的轴标签,再用mtext()手动添加,通过line参数控制标签和轴的距离,数值越小距离越近:
par(mar = c(3, 2, 1, 0.5)) # 绘图时关闭自带坐标轴标签 manhattan(Table, chr="CHR", bp="BP", snp="SNP", p="P", suggestiveline = 4.66963295422, genomewideline = 5.97066294989, ylim = c(0, 12), cex = 1.0, cex.axis = 0.5, xlab = "", ylab = "") # 手动添加轴标签,line参数控制间距 mtext("染色体", side = 1, line = 1.5, cex = 0.8) mtext("-log10(P值)", side = 2, line = 1, cex = 0.8)
- 导出时调整空白
如果是导出图片后仍存在多余空白,可以在导出函数中设置边距参数,比如使用png()/pdf()导出时同步调整mar参数,或导出后手动裁剪多余空白区域即可。
内容的提问来源于stack exchange,提问作者Domi
相关产品推荐
相关产品推荐

