Reorder()未对ggplot中的因子变量进行正确的重新排序
我不明白为什么箱线图在这个图中没有排序:Reorder()未对ggplot中的因子变量进行正确的重新排序,r,ggplot2,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),
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()
set.seed(200)
x因为你没有使它成为有序因子。试一试
ggplot(x, aes(reorder(country, wing, median, order=TRUE), wing)) + geom_boxplot()
您的代码应该可以正常工作。可能您的某个包加载了一个屏蔽基本reorder
函数的函数,或者可能是一个用户定义的reorder
函数,其工作方式不同
您可以使用冲突()
检查此类名称冲突。分离包、rm(reorder)
,或者重新启动R并在不定义/附加冲突定义的情况下重试,都可以解决问题。为什么这会获得否决票?这个问题给出了可复制的代码,并清楚地表明了所做的努力。它不是真正可复制的。错过了对ggplot2的呼叫。另外,您的原始图形与我得到的不匹配。包括order=TRUE
为meI提供了完全相同的绘图,添加了我用代码得到的结果。如果你想按降序排列,你需要使用函数(x)-median(x)
。我刚刚遇到了一个类似的问题,清除工作区并重新启动R产生了想要的结果。也不需要包括order=TRUE
(+1)。关于如何按降序排列的好建议。我建议你把这个带到你的答案中去。我花了一段时间才发现这件衣服穿得这么漂亮。所有因素都有等级顺序。order=TRUE
是不必要的。虽然此代码可以回答问题,但提供有关如何和/或为什么解决问题的附加上下文将提高答案的长期价值。
ggplot(x, aes(reorder(country, wing, FUN = median), wing)) + geom_boxplot()