ggplot

时间:2019-12-03 14:46:17

标签: r ggplot2

我正在尝试重新排列ggplot,对此有很多教程。他们基本上只说要执行以下操作:

ggplot(df) + geom_bar(aes(x = reorder(someValue, -someOtherValue), y = someOtherValue))

我已经尝试对我的geom_col绘图执行此操作,尽管它看起来确实更好,但仍然无法正确地从高到低排序。

enter image description here

我的代码是:

ggplot(mydata) +geom_col(aes(x= reorder(Product, -Total), y=Total))

如何从高到低获得正确的顺序?

enter image description here

1 个答案:

答案 0 :(得分:3)

默认情况下,reorder使用平均值,即reorder(Product, -Total)取每个-Total的平均值Productgeom_col具有默认的position = "stack",因此您正在绘制Total列的总和。由于每种产品的数据行数不同,因此总和的顺序与均值的顺序不同。因此,您需要告诉reorder使用sum,而不是mean。更改为:

aes(x= reorder(Product, -Total, FUN = sum))