R包customLayout比例拼图

一个简单的需求:
拼接两个图,一行两列,但不要一样大,让主图占的比例大些(如2/3),另一个图小一些(如1/3)
image.png
如上,我想突出曼哈顿图。

R相关的拼图函数及包:

  • 基础函数如par(mar =c(3, 2, 2, 1)), par(mfrow=c(1,2)),layout(matrix(c(2,1),1,2))之类的设置
  • gridExtra包
  • cowplot包
  • grid包
  • patchwork包

尝试了下,本来很简单,这些包及其函数应该部分能实现,但没太多精力去学,一下子也没找到这个功能。新找了包customLayout,很快实现了需求。

  res = read.csv('GWAS.Results.csv', header = T)
  colnames(res)[1:4] = c('SNP','CHR','BP','P')

  ## 按2:1分布
  lay <-lay_new(mat =matrix(1:2, ncol =2),widths = c(2,1))
  lay_show(lay)
  lay_set(lay)
  
  manhattan(res[,1:4],col = c("blue","orange"), 
            main="Manhattan plot",
            suggestiveline = -log10(1e-05),
            genomewideline = -log10(5e-08)
  )
  qq(res$P, main="Q-Q plot of GWAS p-value", col = "blue4")

image.png

https://www.sohu.com/a/289245806_613208

posted @ 2020-12-14 19:58  生物信息与育种  阅读(558)  评论(3编辑  收藏  举报