2017-11-01 28 views
-2

私は赤と黒の色でそれに凡例を追加するこの複数geom_barにggplotする凡例を追加する方法

# two data frames 
sf = data.frame(days = c('05-06', '05,08'), Frequency = c(0, 2)) 
normal = data.frame(days = c('05-06', '05,07'), Frequency = c(1, 3)) 

# plot 
ggplot() + 
    geom_bar(aes(y = Frequency, x = days), data = normal, 
      stat="identity", colour = 'black') + 
    geom_bar(aes(y = Frequency, x = days), data = sf, 
      stat="identity", colour = 'red') 

ようなコードは、私は私の質問に最も関連のソリューションです。このoneを試してみましたしかし、それはちょうど最初のバープロットの伝説を示しています。どのように黒と赤の色でバプテットの伝説を持つことができますか?

注意:1つのデータフレームではなく、2つの別々のデータフレームで、行数が異なるため、これらを一緒にマージすることはできません。そこで私は2つの棒グラフをプロットします。上記のコードはプロットを塗りつぶします、私が望むのは、最初の棒グラフが黒で、2番目の棒グラフが赤であることを示す凡例を追加することです。

+0

再現可能な例を提供してください。 –

+0

再現可能なコード例(最も重要なのはデータセット)を提供できますか?私はあなたが達成しようとしていることを100%確信していません。あなたは黒の国境を持つ赤い伝説が欲しいですか? –

+0

いいえ私は伝説を持っているだけで、最初のバーのための赤いボックスとラベルと2番目のバーのための別の黒いボックスを示しています。 – Alex

答えて

1

ggplotの多くの質問と同様に、直面している問題は正しい形式ではないデータが原因です。列がdays,Frequencygroupの単一のデータフレームが必要です。

ggplotの審美的なグループ内の色を設定し、色と黒を設定する手動のカラースケールを指定します。 http://ggplot2.tidyverse.org/reference/

library(ggplot2) 

df = data.frame(days = c('05-06', '05,08', '05-06', '05,07'), 
       Frequency = c(0, 2, 1, 3), 
       group = c("sf", "sf", "normal", "normal")) 


# plot 
ggplot(df, aes(y = Frequency, x = days, fill = group)) + 
    geom_bar(stat="identity") + 
    scale_fill_manual(values = c("red", "black")) 

enter image description here

私がデータを使用する方法についての理解の少し多くを得るためにggplot参照指導の基本を読んで励ます

。さらに、ggplotのチートシートは参考になります: https://www.rstudio.com/wp-content/uploads/2015/03/ggplot2-cheatsheet.pdf

+0

アレックス、この答えはあなたの問題を解決しましたか?それが受け入れられたとしてマークしてください:) –

関連する問題