去年搞芯片平台注释的时候需要对比三种注释方法注释到的基因不同的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()就可以~
网友评论