web-dev-qa-db-fra.com

Faire pivoter les étiquettes de facettes commutées dans ggplot2 facet_grid

Je voudrais tracer quelques barplots les uns sur les autres en utilisant facet_grid:

library(ggplot2)

df <- group_by(mpg, manufacturer) %>%
  summarise(cty = mean(cty), hwy = mean(hwy)) %>%
  ungroup()

df <- melt(df, id.vars = "manufacturer")

ggplot() +
  geom_bar(data =df, aes(x = variable, y = value), stat = "identity") +
  facet_grid(manufacturer ~ ., switch = "y")

J'utilise l'argument switch de ggplot2::facet_grid() pour permettre aux étiquettes de facette d'être affichées sur l'axe des y plutôt qu'en haut de chaque facette. Le problème est que les étiquettes des facettes sont tracées verticalement et donc rognées. Existe-t-il un moyen de tracer les étiquettes des facettes horizontalement? Toutes les questions que j'ai trouvées jusqu'à présent concernaient uniquement la rotation des étiquettes de l'axe des x, pas les étiquettes des facettes.

30
roming

Il vous suffit d'ajouter la theme() et de spécifier l'angle dans strip.text.y

library(ggplot2)
df <- group_by(mpg, manufacturer) %>%
  summarise(cty = mean(cty), hwy = mean(hwy)) %>%
  ungroup()

df <- melt(df, id.vars = "manufacturer")

ggplot() +
  geom_bar(data =df, aes(x = variable, y = value), stat = "identity") +
  facet_grid(manufacturer ~ ., switch = "y")+
 theme(strip.text.y = element_text(angle = 180))
50
joel.wilson