首页 > 解决方案 > 在ggplot2中对汇总统计值进行排序

问题描述

以下代码按组汇总了平均值,这很棒。但是,我希望能够对这些值进行排序。知道如何将平均值添加到代码中吗?

数据:

df=data.frame(score=c(4,2,3,5,7,6,5,6,4,2,3,5,4,8),
              age=c(18,18,23,50,19,39,19,23,22,22,40,35,22,16))

# Option 1
ggplot(df, aes(x = factor(age), y = score)) + 
  geom_bar(stat = "summary", fun = "mean")

# Option 2
ggplot(df, aes(x = factor(age), y = score)) + 
  stat_summary(fun = "mean", geom = "bar")

在此处输入图像描述

标签: rsortingggplot2

解决方案


您可以使用forcats::fct_reorder

library(ggplot2)

ggplot(df, aes(x = forcats::fct_reorder(factor(age), score, mean), y = score)) + 
  geom_bar(stat = "summary", fun = "mean") + 
  xlab('age')

在此处输入图像描述


推荐阅读