ggplot séparer la légende et l'intrigue
Je suis en utilisant le grille lpackage pour placer mes graphiques que j'ai fait avec ggplot2:
library(ggplot2)
library(grid)
Layout <- grid.layout(nrow = 4, ncol = 4,
widths = unit(1, "null"),
heights = unit(c(0.4, 0.8, 1.2, 1.2), c("null", "null", "null")))
grid.show.layout(Layout)
plot1 = ggplot(diamonds, aes(clarity, fill = color)) +
geom_bar() +
facet_wrap(~cut, nrow = 1)
print(plot1 + theme(legend.position = "none"),
vp = viewport(layout.pos.row = 3, layout.pos.col = 1:4))
Le problème est que je veux mettre le tracé de la troisième rangée (3,1) - (3,4) et de mettre la légende à l' (4,4) position. Malheureusement, je ne peux pas vraiment trouver un moyen de créer une légende de la variable.
J'ai cherché en ligne et le plus proche que j'ai eu à utiliser les anciens
+ opts(keep = "legend_box")
mais qui a été abandonnée.
source d'informationauteur user1690049
Vous devez vous connecter pour publier un commentaire.
Vous pouvez obtenir la légende de la
grob
objet de la ggplot. Ensuite, vous pouvez utiliser legrid.arrange
fonction de la position de tout.Il y a beaucoup d'exemples sur le web à l'aide de la
g_legend
fonction.HTH
Il y a une fonction grid_arrange_shared_legend proposé par les développeurs de ggplot2 eux-mêmes: https://github.com/hadley/ggplot2/wiki/Share-a-legend-between-two-ggplot2-graphsqui fonctionne plutôt bien.