我正在尝试按两列排序数据框,我可以通过订单轻松完成此操作,我可以通过打印看到它的工作原理。但是,当我尝试使用ggplot时,似乎忽略了排序。
当我使用重新排序时,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和b,但是排序行为始终是相同的。
有什么想法吗?我一直在努力解决这个问题......