gpt4 book ai didi

r - 如何通过R中的组对geom_boxplot中的x轴重新排序?

转载 作者:行者123 更新时间:2023-12-02 07:53:56 25 4
gpt4 key购买 nike

我希望能够根据每个组的平均值重新排序 ggplot 中箱线图的 x 轴。

例如,如果我有这个数据框:

L3 <- LETTERS[1:3]
fac <- sample(L3, 50, replace = TRUE)
(d <- data.frame(x = 1, y = sample(1:10, 50, replace = TRUE), fac = fac))
d

p <- ggplot(d, aes(x=fac, y=y)) + geom_boxplot(fill = "#E69F00")
print(p)

但是,我希望能够通过每个因素(即 A、B、C)的平均值(而不是数据框中的顺序)对箱线图进行重新排序。我一直在寻找这个问题的答案,并遇到了几个命令,但没有一个起作用。我认为可能有一种使用 order 或 reorder 和 dplyr/summarise 的方法,但我尝试的所有方法都不起作用。

我还无法上传图片,但假设该图的 A 平均值为 6,B 平均值为 5,C 平均值为 5.5。我希望顺序为 B、C、A。我的实际图表有 30 个因子,所以我想要一种简单的方法来完成它,而无需手动排序。

我真的很感谢所有的帮助!

最佳答案

最简单的方法是使用重新排序:

d$fac = reorder(d$fac, d$y, mean)

这里我们根据 fac 的值计算 y 的平均值。 ggplot2 现在将根据 level(d$fac) 的顺序对绘图进行排序

您还可以将重新排序放在ggplot调用中

# Thanks to renato vitolo
ggplot(d, aes(x=reorder(fac, y, mean), y=y))

关于r - 如何通过R中的组对geom_boxplot中的x轴重新排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39153646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com