2016-11-08 125 views
8

我想绘制对方使用facet_grid的顶部一些barplots:旋转开关小标签在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") 

我用的ggplot2::facet_grid()switch说法让小标签在y显示而不是在每个面的顶部。问题是小平面标签垂直绘制,因此裁剪。有没有什么方法可以水平绘制面 - 标签?到目前为止,我发现的所有问题都与仅旋转x轴标签有关,而不是刻面标签。

回答

18

你只需要添加主题(),并指定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

真棒。谢谢! – roming