代码之家  ›  专栏  ›  技术社区  ›  Konrad

在一张图表上放置两个维恩图

  •  4
  • Konrad  · 技术社区  · 8 年前

    使用 VennDiagram 包我以以下方式生成两个图:

    # First graph
    VennDiagram::draw.pairwise.venn(
        area1 = 100,
        area2 = 70,
        cross.area = 30,
        category = c("A1", "B1"),
        fill = c("#00204DFF", "#FFEA46FF")
    ) -> vg1
    
    # Second graph
    VennDiagram::draw.pairwise.venn(
        area1 = 120,
        area2 = 80,
        cross.area = 10,
        category = c("A2", "B2"),
        fill = c("#000004FF", "#FCFFA4FF")
    ) -> vg2
    

    当通过呼叫时 grid::grid.draw(vg1) grid::grid.draw(vg2) 图表如预期所示:

    网格:网格绘制(vg1) vg1

    网格:网格绘制(vg2) vg2

    问题

    如何创建一个网格对象,其中两个绘图都放置在另一个绘图下?

    尝试

    grdFrme <- grid::grid.frame(name = "gf")
    grid::grid.pack("gf", vg1)
    

    packgrob(grid.get(gpath)、grob、side、row、row.before中出错, row.after,:无效的“grob”

    预期结果

    both graphs

    1 回复  |  直到 8 年前
        1
  •  4
  •   pogibas    8 年前

    一种解决方案是使用Awesome multipanelfigure 包装( 在面板中填充基础图、“Lattice”、“ggplot2”和“complexheatmap”绘图、grobs和png、jpeg、svg和tiff图像。 )

    library(multipanelfigure)
    figure <- multi_panel_figure(columns = 1, rows = 2)
    
    figure %<>% 
        fill_panel(vg1) %<>%
        fill_panel(vg2)
    

    enter image description here

    推荐文章