反转堆叠顺序而不影响ggplot2条形图中的图例顺序

时间:2016-07-17 21:03:59

标签: r ggplot2

How do I change the stacking order in a bar chart in ggplot2?显示了如何撤消堆叠顺序,但solution也会更改图例中显示的顺序。我想更改堆叠顺序而不影响图例顺序,这样图例中的顶级类也是堆叠中的顶级类。

library(ggplot2)
data(mtcars)
ggplot(mtcars, aes(factor(cyl), fill=gear)) + geom_bar()

Original column chart using <code>ggplot2::ggplot</code>

要反转堆叠顺序,请反转因子级别。这也会反转图例顺序。

mtcars$gear <- factor(mtcars$gear)  # First make factor with default levels
mtcars$gear <- factor(mtcars$gear, levels=rev(levels(mtcars$gear)))
ggplot(mtcars, aes(factor(cyl), fill=gear)) + geom_bar()

Reversed column chart

How to reverse legend (labels and color) so high value starts downstairs?建议使用guide_legend(reverse=T),但不容易重复,也不属于堆积条形图。

1 个答案:

答案 0 :(得分:6)

您可以使用scale_fill_discrete反转图例顺序:

ggplot(mtcars, aes(factor(cyl), fill=gear)) + geom_bar() + 
    scale_fill_discrete(guide=guide_legend(reverse=T))

Plot of reversed legend order