web-dev-qa-db-fra.com

légende ggplot2 en bas et horizontal

Comment puis-je déplacer une légende ggplot2 au bas de l'intrigue et la faire pivoter horizontalement?

Exemple de code:

library(reshape2) # for melt
df <- melt(outer(1:4, 1:4), varnames = c("X1", "X2"))
p1 <- ggplot(df, aes(X1, X2)) + geom_tile(aes(fill = value))
p1 + scale_fill_continuous(guide = guide_legend())

Résultat souhaité (approximatif): enter image description here

96
Tyler Rinker

Si vous souhaitez déplacer la position de la légende, veuillez utiliser le code suivant:

library(reshape2) # for melt
df <- melt(outer(1:4, 1:4), varnames = c("X1", "X2"))
p1 <- ggplot(df, aes(X1, X2)) + geom_tile(aes(fill = value))
p1 + scale_fill_continuous(guide = guide_legend()) +
    theme(legend.position="bottom")

Cela devrait vous donner le résultat souhaité. Legend at bottom

129
Shreyas Karnik

Deux options imparfaites qui ne vous donnent pas exactement ce que vous demandiez, mais qui sont assez proches (au moins, les couleurs seront assemblées)

library(reshape2); library(tidyverse)
df <- melt(outer(1:4, 1:4), varnames = c("X1", "X2"))
p1 <- ggplot(df, aes(X1, X2)) + geom_tile(aes(fill = value))
p1 + scale_fill_continuous(guide = guide_legend()) +
 theme(legend.position="bottom", legend.direction="vertical")

p1 + scale_fill_continuous(guide = "colorbar") + theme(legend.position="bottom")

Créé le 2019-02-28 par le package reprex (v0.2.1)

29
Arthur Yip