我正在尝试重新排列ggplot,对此有很多教程。他们基本上只说要执行以下操作:
ggplot(df) + geom_bar(aes(x = reorder(someValue, -someOtherValue), y = someOtherValue))
我已经尝试对我的geom_col绘图执行此操作,尽管它看起来确实更好,但仍然无法正确地从高到低排序。
我的代码是:
ggplot(mydata) +geom_col(aes(x= reorder(Product, -Total), y=Total))
如何从高到低获得正确的顺序?
答案 0 :(得分:3)
默认情况下,reorder
使用平均值,即reorder(Product, -Total)
取每个-Total
的平均值Product
。 geom_col
具有默认的position = "stack"
,因此您正在绘制Total
列的总和。由于每种产品的数据行数不同,因此总和的顺序与均值的顺序不同。因此,您需要告诉reorder
使用sum
,而不是mean
。更改为:
aes(x= reorder(Product, -Total, FUN = sum))