【问题标题】:Reverse stacking order without affecting legend order in ggplot2 bar charts反转堆叠顺序而不影响ggplot2条形图中的图例顺序
【发布时间】:2016-07-17 21:03:59
【问题描述】:

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()

要反转堆叠顺序,请反转因子水平。这也颠倒了图例顺序。

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()

How to reverse legend (labels and color) so high value starts downstairs? 建议使用guide_legend(reverse=T),但不容易重现,并且与堆叠条形图无关。

【问题讨论】:

标签: r ggplot2


【解决方案1】:

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

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

【讨论】:

  • 谢谢!这帮助我在 ggplot2 更新后使情节看起来像“旧版”情节,s.a. blog.rstudio.org/2016/11/14/ggplot2-2-2-0。基本上,除了guide_legend 中的reverse=T 之外,我还必须在fill-aesthetic 上使用forcats::fct_rev()rev() 中的颜色scale_fill_manual
猜你喜欢
  • 2020-10-16
  • 2020-10-18
  • 1970-01-01
  • 2017-07-21
  • 2017-07-31
  • 2017-08-22
  • 2020-08-24
相关资源
最近更新 更多