geom_col 显示最低数字作为最高柱的排名

geom_col to show a ranking with the lowest number as the tallest bar

我有一个不同项目排名的数据集,我希望其中的最低值显示图表上最高的条形。下面是一小部分数据和构建图表的代码,遵循图表当前的样子。

data <- data.frame(ranks = c("rank1","rank2", "rank3") , value = c(13,2,18))

ggplot(data) + 
  geom_col(aes(x = ranks, y = value))

我希望图表看起来像这样(使用相同的数据),y 轴反转:

如果能容忍警告,可以设置ymax = after_stat(-Inf)。这个技巧滥用了列被参数化为矩形的事实,而不是使用 ggplot2 的推荐方式。您也可以将其设置为 -1 * desired_lowest_point,但比例不会自动调整限制。

library(ggplot2)
#> Warning: package 'ggplot2' was built under R version 4.0.5
data <- data.frame(ranks = c("rank1","rank2", "rank3") , value = c(13,2,18))

ggplot(data) + 
  geom_col(aes(x = ranks, y = value, 
               ymax = after_scale(-Inf))) +
  scale_y_reverse()
#> Warning: Ignoring unknown aesthetics: ymax

reprex package (v1.0.0)

于 2021-04-22 创建