2016-07-17 6 views
3

How do I change the stacking order in a bar chart in ggplot2?は積み重ね順序を逆にする方法を示しますが、solutionは凡例に表示される順序も変更します。凡例の最上位クラスがスタッキングのトップクラスになるように、凡例の順序に影響を与えずにスタックの順序を変更したいと思います。ggplot2棒グラフの凡例に影響を与えずに積み重ね順序を逆にする

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

可能な重複[非常に高い値が階下始まり伝説(ラベルと色)を逆にする方法は?](のhttp:// stackoverflowの.com/questions/22458970/how-to-reverse-legend-labels-and-color-so-value-starting-down階段) – aosmith

答えて

5

あなたは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

+0

Thx!これは、ggplot2アップデート、s.aの後にプロットを "従来の"プロットのように見せるのに役立ちました。 https://blog.rstudio.org/2016/11/14/ggplot2-2-2-0/。基本的には 'guide_legend'の' reverse = T'に加えて、 'fill'-aestheticの' forcats :: fct_rev() '、' scale_fill_manual'の色の 'rev()'を使わなければなりませんでした。 – Shadow

関連する問題