如何在 R 中使用 ggplot2 按均值更改箱线图的顺序?
要按均值更改箱线图的顺序,我们可以在 ggplot 的 aes 中使用 reorder 函数。例如,如果我们有一个名为 df 的数据框,其中包含两列,分别为 x(类别)和 y(计数),那么我们可以按均值对数据框进行排序,并使用命令 ggplot(df,aes(x=reorder(x,y,mean),y))+geom_boxplot() 创建箱线图。
示例
考虑以下数据框 −
> x<-c(rep(c("A","B","C"),times=c(10,5,5))) > y<-c(rpois(10,25),rpois(5,10),rpois(5,2)) > df<-data.frame(x,y) > df
输出
x y 1 A 22 2 A 17 3 A 20 4 A 36 5 A 34 6 A 25 7 A 25 8 A 30 9 A 23 10 A 29 11 B 8 12 B 8 13 B 6 14 B 8 15 B 12 16 C 0 17 C 4 18 C 3 19 C 2 20 C 1
加载 ggplot2 包并针对 x 中的类别创建箱线图 −
> library(ggplot2) > ggplot(df,aes(x,y))+geom_boxplot()
输出
针对 x 中的类别创建按 y 均值排序的箱线图 −
> ggplot(df,aes(x=reorder(x,y,mean),y))+geom_boxplot()
输出
广告