在 ggplot2 中旋转切换面标签 facet_grid

Rotate switched facet labels in ggplot2 facet_grid

我想使用 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 轴上而不是每个构面的顶部。问题是小平面标签是垂直绘制的,因此被裁剪了。有没有办法水平绘制 facet -labels?到目前为止,我发现的所有问题都只与旋转 x 轴标签有关,与小平面标签无关。

您只需添加 theme() 并在 strip.text.y.left 中指定角度。

library(tidyverse)
library(reshape2)

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.left = element_text(angle = 0))

reprex package (v0.3.0)

于 2020 年 3 月 15 日创建

请注意,strip.text.y.left 是在 ggplot2 3.3.0 中添加的。对于早期版本,您需要编写 strip.text.y = element_text(angle = 180).