在 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)
.
我想使用 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)
.