一个简单的需求:
拼接两个图,一行两列,但不要一样大,让主图占的比例大些(如2/3),另一个图小一些(如1/3)
如上,我想突出曼哈顿图。
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")