R. *_*Ben 4 plot r ggplot2 box
我希望能够通过每个组的平均值对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)Run Code Online (Sandbox Code Playgroud)
但是,我希望能够通过每个因子(即A,B,C)的平均值,而不是数据框中的顺序,对箱形图进行重新排序。我一直在寻找答案,并遇到了几个命令,但没有一个起作用。我在想可能有一种使用order或reorder和dplyr / summary的方法,但是我尝试的所有方法都无法正常工作。
我还不能上传图片,但是假设该图的平均值为A,A,B,C为5.5,A为6,B为5.5。我希望该顺序为B,C,A。 30个因素,因此我希望有一个简单的方法来完成此任务,而无需手动订购。
我真的很感谢所有的帮助!
最简单的方法是使用reorder:
d$fac = reorder(d$fac, d$y, mean)
Run Code Online (Sandbox Code Playgroud)
在此,我们根据的值计算y条件的均值fac。ggplot2现在将根据以下顺序对图进行排序levels(d$fac)
你也可以把reorder在ggplot通话
# Thanks to renato vitolo
ggplot(d, aes(x=reorder(fac, y, mean), y=y))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6072 次 |
| 最近记录: |