我想使用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")
我用switch
的论证ggplot2::facet_grid()
让面标签显示在 y 轴上,而不是显示在每个面的顶部。问题是面标签是垂直绘制的,因此被裁剪。有什么方法可以水平绘制构面标签吗?到目前为止,我发现的所有问题都仅与旋转 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))
Created on 2020-03-15 by the reprex package https://reprex.tidyverse.org (v0.3.0)
注意strip.text.y.left
已在 ggplot2 3.3.0 中添加。对于早期版本,您需要编写strip.text.y = element_text(angle = 180)
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)