5 votes

Placer deux diagrammes de Venn sur un même tableau

Utilisation de VennDiagram Je suis en train de générer deux graphiques de la manière suivante :

# 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

Lorsqu'il est appelé via grid::grid.draw(vg1) y grid::grid.draw(vg2) les graphiques s'affichent comme prévu :

grid::grid.draw(vg1) vg1

grid::grid.draw(vg2) vg2

Question

Comment puis-je créer un objet de grille où les deux parcelles sont placées l'une sous l'autre ?

Tentative

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

Erreur dans packGrob(grid.get(gPath), grob, side, row, row.before, row.after, : 'grob' invalide

Résultats souhaités

both graphs

4voto

Pgibas Points 677

Une solution pourrait consister à utiliser des multipanelfigure paquet ( remplir les panneaux avec des graphiques de base, 'lattice', 'ggplot2' et 'ComplexHeatmap', des grobs, et des images PNG, JPEG, SVG et TIFF ).

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

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

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X