将维恩图转换为grob?

时间:2019-05-30 23:45:15

标签: r ggplot2 ggplotly

您好,有几种方法可以将R基本图转换为grob对象,但是我似乎无法从VennDiagram包中获得维恩图。我尝试了两种不同的方法,但是都失败了。有任何想法吗?谢谢!

library ( VennDiagram )
library(ggplotify)
library(gridGraphics)

venn.plot <- draw.pairwise.venn(
    area1 = 100,
    area2 = 70,
    cross.area = 30,
    category = c("First", "Second"),
    cat.pos = c(0, 180),
    euler.d = TRUE,
    sep.dist = 0.03,
    rotation.degree = 45
);




grab_grob <- function(){
    grid.echo()
    grid.grab()
}

grid.draw(venn.plot )
g <- grab_grob()
p1 <- as.grob( venn.plot )

1 个答案:

答案 0 :(得分:1)

您的venn.plot对象是gList,一个杂点列表。您可以直接使用该对象。如果您想将p1用于类grob,则可以将最后一行替换为:

> p1 <- grobTree(venn.plot)

然后

> is.grob(p1)
[1] TRUE
> class(p1)
[1] "gTree" "grob"  "gDesc"