Размещение двух диаграмм Венна на одном графике

Используя пакет 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) диаграммы отображаются так, как ожидалось:

grid::grid.draw(vg1) vg1

grid::grid.draw(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'

Желаемые результаты

оба графика


person Konrad    schedule 28.05.2018    source источник
comment
Я считаю, что это также довольно просто с пакетом gridExtra. В какой-то момент я понял, как это сделать в самом grid, но это какая-то головная боль.   -  person lmo    schedule 28.05.2018


Ответы (1)


Одним из решений может быть использование замечательного пакета multipanelfigure (заполните панели базовыми, «решетчатыми», «ggplot2» и «ComplexHeatmap» графиками, гробами и изображениями PNG, JPEG, SVG и TIFF).

library(multipanelfigure)
figure <- multi_panel_figure(columns = 1, rows = 2)

figure %<>% 
    fill_panel(vg1) %<>%
    fill_panel(vg2)

введите здесь описание изображения

person pogibas    schedule 28.05.2018