2016-11-08 17 views
8

chciałbym wykreślić niektóre barplots na górze każdego innego używając facet_grid:Obrót przełączane etykiety fazowane w ggplot2 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") 

używam switch argument ggplot2::facet_grid() pozwolić etykiety fazowane być wyświetlane na Y- oś zamiast na górze każdego aspektu. Problem polega na tym, że etykiety płaszczyzn są drukowane pionowo, a więc przycięte. Czy jest jakiś sposób na wykreślenie poziomych płaszczyzn-aspektów? Wszystkie dotychczasowe pytania dotyczyły obracania tylko etykiet osi X, a nie etykiet aspektów.

Odpowiedz

18

Wystarczy dodać motyw() i określić kąt w 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)) 
+1

niesamowite. Dzięki! – roming