重新排序()没有正确地重新排序ggplot中的因子变量

时间:2013-05-18 10:02:07

标签: r ggplot2

我很困惑为什么箱形图没有在这个情节中订购:

set.seed(200)
x <- data.frame(country=c(rep('UK', 10), 
                          rep("USA", 10), 
                          rep("Ireland", 5)),
                wing=c(rnorm(25)))

ggplot(x, aes(reorder(country, wing, median), wing)) + geom_boxplot()

enter image description here

如何根据最高最低中位数(从左到右)订购箱图?

3 个答案:

答案 0 :(得分:6)

因为你没有使它成为有序因子。尝试

ggplot(x, aes(reorder(country, wing, median, order=TRUE), wing)) + geom_boxplot()

enter image description here

答案 1 :(得分:0)

您的代码应该可以正常工作。可能您的某些软件包中装有掩盖基本reorder函数或用户定义的reorder函数的函数,它们的工作方式不同。

您可以使用conflicts()检查此类名称冲突。卸下软件包rm(reorder),或重新启动R并在没有定义/附加冲突定义的情况下重试即可解决问题。

答案 2 :(得分:-1)

ggplot(x, aes(reorder(country, wing, FUN = median), wing)) + geom_boxplot()