1

我正在尝试按两列对数据框进行排序,我可以通过 order 轻松完成此操作,并且可以通过打印它来查看它的工作原理。但是,当我尝试使用 ggplot 时,它似乎忽略了排序。

当我使用 reorder ggplot 得到正确的排序。问题是我还没有找到一种方法来使用重新排序按两个不同的列排序,只是排序。

所以我有一个包含“name”、“a”和“b”列的数据框

使用顺序

dfm <- dfm[order(dfm$a, dfm$b, decreasing=TRUE), ]
print (dfm) # prints correct ordering by two columns
ggplot(dfm, aes(x=name, y=a)) + geom_bar(aes(fill=tipo)) # plots in alphabetical ordering by name  

仅排序或按列 a,ggplot 正确:

dfm$name <- reorder (dfm$name, dfm$a)
print (dfm) # prints correct ordering by one column
ggplot(dfm, aes(x=name, y=a)) + geom_bar(aes(fill=tipo)) # plots in order by a

实际上我正在绘制一个堆积条形图,所以 y 不是真正的 a 而是 a 和 b,但排序行为总是相同的。

有任何想法吗?我已经为此苦苦挣扎了一段时间...

4

0 回答 0