时隔一年,搞定了曾经搞不定的维恩图拼图

去年搞芯片平台注释的时候需要对比三种注释方法注释到的基因不同的fimaly,20张维恩图,由于我最喜欢的VennDiagram包输出结果是gList,就无法实现拼图,每次都是请我师姐用AI帮我拼的。
今天弄了一下tcga三大R包分析结果图片的拼图,非常开心。想把韦恩图也一起拼进去,由于不同类别的图之间存在鸿沟,我就探索怎么样才能把gList转成ggplot,搜了好多资料,一个多小时都搜不到什么有用信息。但是搜索结果指向一个叫grid的包,还涉及到一个叫grob的图片类型。
我尝试将gList转成grob,再将grob转成ggpplot,奇迹般的成功了!代码如下:

library(VennDiagram)
venn.plot <- venn.diagram(
  x = list(
    sample1 = c(1:40),
    sample2 = c(30:60)
  ),
  filename = NULL
)
class(venn.plot)
#> [1] "gList"
grid::grid.draw(venn.plot)

library(cowplot)
vb = as_grob(venn.plot)
grid.draw(vb)
library(ggplotify)
gb = as.ggplot(vb)
class(gb)
#> [1] "gg"     "ggplot"
gb

转成ggplot2后,就可以说是天高任鸟飞了!可用的包一抓一大把,我最喜欢的还是patchwork!
大佬新包patchwork:可能是迄今为止最优秀的拼图包

火山图和热图也是可以拼到一起的,只需要把热图as.ggplot()就可以~

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

推荐阅读更多精彩内容

  • 近两年综艺界掀起来一场综艺清流的浪潮,从去年开始的《见字如面》、《朗读者》开始,到湖南卫视的《儿行千里》,虽然在众...
    花自青阅读 1,215评论 0 0
  • 路由实现原理,就是根据不同的 url ,在页面上显示相应的内容。而浏览器 url 变化时,会造成页面的刷新。前端路...
    极客传阅读 1,391评论 0 1
  • 查看系统相册权限 在应用中获取相册的权限值, 然后做相应的操作。 iOS8.0以上可以用 查看系统相册权限 在i...
    白屏阅读 5,062评论 0 48