我必须做一些愚蠢的事情,但是周期性地在ggplot的 aes()
部分,但莫名其妙地对我不起作用 . 以下是两个版本的MWE,可以在我的系统上重现问题 . 两者都没有按总数对字母进行重新排序 . 该图应在X轴上显示b,c,a .
(df <- data.frame(letters = c("a", "b", "c"), nums = 1:3, total = c("150", "50", "100")))
reorder.plot <- ggplot(df, aes(reorder(letters, total), y = nums)) +
geom_point()
reorder.plot
reorder.plot.stats <- ggplot(df, aes(stats::reorder(letters, total), y = nums)) +
geom_point()
reorder.plot.stats
可以看出,在第二个例子中,我指定了 stats
包 .
一篇文章说在调用ggplot之前重新排序数据框,但是我知道重新排序在过去多次为我工作reorder data in ggplot另一个问题创建了一个新的有序变量并在ggplot中使用了该变量 . Understanding how "reorder" in R works
我在Windows 8下运行并加载了这些包 . 如果这是相关的,即使我指定 stats::
,如何判断reorder()是否被屏蔽?
search()1“.GlobalEnv”“package:extrafont”“package:RCurl”“package:bitops”[5]“package:qdap”“package:qdapTools”“package:qdapDictionaries”“package:XML”[9] “package:ReporteRs”“package:ReporteRsjars”“package:lubridate”“package:gridExtra”[13]“package:RColorBrewer”“package:dplyr”“package:scales”“package:Hmisc”[17]“package:Formula “”package:survival“”package:splines“”package:lattice“[21]”package:grid“”package:stringr“”package:XLConnect“”package:reshape2“[25]”package:plyr“”package: ggplot2“”工具:rstudio“”package:stats“[29]”package:graphics“”package:grDevices“”package:utils“”package:datasets“[33]”package:methods“”Autoloads“”package:base “
谢谢,我已经表示遗憾不理解显而易见的事 .
2 回答
total
列是一个因子,但reorder()
采用数字或逻辑 . 如果在指定total
值时删除150, 50, 100
周围的引号,或者如果使用as.numeric()
将total
转换为数字,则它将起作用 .您应该总是喜欢重新排序数据,而不是美学 . 仅重新排序
aes
可能会产生意外和不需要的结果 . 虽然它经常在您玩它之后起作用,但重新排序数据本身应该直接起作用: