R语言技巧每日分享day9-ggplot对象的拼图函数

patchwork

patchwork适合用于图数少,但需要精准控制图片排列的场景。拼图语法如下:

  • +:最简单的拼图,默认横向排列,若有多个图,会自动计算最佳的行和列;plot_spacer()代表空白
p1 + plot_spacer() +
    p2 + plot_spacer() +
    p3 + plot_spacer()

  • /:上下拼图; |:左右拼图;用/|配以()可以实现更加复杂的拼图
(p2 / p3 ) | p1

  • plot_layout():控制细节
p1 + p2 + p3 + p4 +
  plot_layout(widths = c(3, 1))

  • 自定义拼图
layout <- "
##BBBB
AACCDD
##CCDD
"
p1 + p2 + p3 + p4 +
  plot_layout(design = layout)

ggpubr::ggarrange()

ggpubr::ggarrange适合更多图的组合,可以直接指定行数和列数,默认按行排列

例如:

ggpubr::ggarrange(plotlist = list(p1,p2,p3,p1,p2,p3),nrow = 2,ncol = 3,common.legend = T)

aplot::insert_*

这个函数族包括aplot::insert_bottom()aplot::insert_left()aplot::insert_right()aplot::insert_top()。我通常用于单张复杂图的绘制。但缺点是返回的对象不是ggplot对象,进行后续操作会比较麻烦。

p1 %>% insert_top(p2,height = 0.2) %>% insert_right(p3,0.2)

参考

https://mp.weixin.qq.com/s/Y_uK2H7ketmFpJMvkNUNtg

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容