2 votes

Ajouter une légende commune

J'essayais de faire un multiplot avec ggplot2 . Voici mon code initial

nucmer_s1 <- ggarrange(eight_uniform, ten_uniform, twelve_uniform, fourteen_uniform, sixteen_uniform, 
                       ncol=3, nrow=2, common.legend = TRUE, legend="bottom") 

Je reçois cette erreur

Erreur dans plot$scales : L'opérateur $ est invalide pour les vecteurs atomiques

alors.

annotate_figure(nucmer_s1, 
                top = text_grob("Genomas validados con distribución de datos equilibrada",
                color = "black", face = "bold", size = 12))

cependant j'obtiens le graphique enter image description here Mais j'ai besoin de mettre un titre dans chaque parcelle, alors j'ai changé pour celui-ci.

nucmer_s1 <-grid.arrange(
  eight_uniform + ggtitle("8 genomas"), 
  ten_uniform +  ggtitle("10 genomas"), 
  twelve_uniform + ggtitle("12 genomas"), 
  fourteen_uniform + ggtitle("14 genomas"), 
  sixteen_uniform + ggtitle("16 genomas"), 
  ncol=3, nrow=2, common.legend = TRUE, legend="bottom")

mais j'ai eu

Erreur dans gList(list(grobs = list(list(x = 0.5, y = 0.5, width = 1, height = 1, :
Seuls les "grobs" sont autorisés à figurer sur la "gList".
Además : Messages d'avertissement :
1 : Dans grob$wrapvp <- vp : Realizando coercion de LHD a una lista
2 : Dans grob$wrapvp <- vp : Realizando coercion de LHD a una lista

alors j'efface le common.legend partie et j'ai obtenu cette parcelle

enter image description here J'ai donc deux questions :

  • Existe-t-il un moyen d'ajouter un titre à chaque parcelle avec la boîte grise sans utiliser la fonction facet_grid (car je n'ai pas cette information dans les données) ? et

  • Existe-t-il un moyen de placer la légende dans le côté vide d'un multiplot ?

Merci beaucoup pour votre aide

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