我正在尝试绘制条形图,在x轴上显示研究名称,在y轴上显示总分。为了使图形更易读,我翻转了坐标系,以使研究名称现在显示在左侧。 但是,现在我不能再更改条形的顺序了。我希望它是按字母顺序从a到z的顺序排列,而不是相反(在我的情节中就是这种情况)。
如下图所示,条形图以Wright(2018)开始,以Alford(2012)结尾。我想反过来。
data.quality %>%
ggplot(aes(x = study, y = score)) +
geom_bar(stat = "identity", fill = "#66c2a5") +
coord_flip() +
scale_y_continuous(name = "Total quality score", limits = c(0, 7),
breaks = 0:7) +
scale_x_discrete(name = element_blank()) +
theme(axis.ticks.y = element_blank())
我已经尝试使用reorder():
ggplot(aes(x = study, y = reorder(score, -study)))
但这不起作用,因为 study 是一个字符串。
谢谢你, 马赛厄斯
答案 0 :(得分:1)
您是否尝试过将study
变成一个因子并在绘制它之前反转其顺序?我没有可重现的示例对此进行测试,但是它可能有用,因为coord_flip
颠倒了(现在已经颠倒了)顺序。
library(tidyverse)
data.quality %>%
mutate(study = fct_rev(study)) %>%
ggplot(aes(x = study, y = score)) +
geom_bar(stat = "identity", fill = "#66c2a5") +
coord_flip() +
scale_y_continuous(name = "Total quality score", limits = c(0, 7),
breaks = 0:7) +
scale_x_discrete(name = element_blank()) +
theme(axis.ticks.y = element_blank())