【发布时间】:2021-04-27 16:03:17
【问题描述】:
我正在尝试使用按因子水平计算的值制作 ggplot2 列图。我希望创建一个图,其中空因子水平显示在图上,但保留在轴的底部。目前,他们处于领先地位。我已经根据计算值重新排序了我的因子,并希望为它们保留它。我将包括示例数据。
library(tidyverse)
data(mtcars)
mtcars %>%
mutate(cyl = as.factor(cyl),
cyl = fct_expand(cyl, c("2", "4", "6", "8"))) %>%
group_by(cyl) %>%
summarize(meanMPG = mean(mpg)) %>%
ungroup() %>%
mutate(cyl = fct_reorder(cyl, meanMPG)) %>%
ggplot(aes(x = cyl, y = meanMPG)) +
geom_col() +
scale_x_discrete(drop = FALSE) +
coord_flip() # shows empty level "2" on the top
【问题讨论】:
-
所以您希望图表按 4、6、8 和 2 的顺序排列(因为它是空的)?
-
@dash2 是的!确切地。我应该提到我的实际数据框是在一个函数中编程的,所以我需要在不提前知道哪些因子级别为空的情况下执行此操作