2014-01-11 34 views
14

挨拶凡例の灰色の四角形を削除したいと思います。私はいろいろな方法を試しましたが、どれも成功しませggplotの凡例キーの塗りつぶしを取り除きます。

ggtheme <- 
theme(
axis.text.x = element_text(colour='black'), 
axis.text.y = element_text(colour='black'), 
panel.background = element_blank(), 
panel.grid.minor = element_blank(), 
panel.grid.major = element_blank(), 
panel.border = element_rect(colour='black', fill=NA), 
strip.background = element_blank(), 
legend.justification = c(0, 1), 
legend.position = c(0, 1), 
legend.background = element_rect(colour = NA), 
legend.key = element_rect(colour = "white", fill = NA), 
legend.title = element_blank() 
) 

colors <- c("red", "blue") 
df <- data.frame(year = c(1:10), value = c(10:19), gender = rep(c("male","female"),each=5)) 
ggplot(df, aes(x = year, y = value)) + geom_point(aes(colour=gender)) + 
stat_smooth(method = "loess", formula = y ~ x, level=0, size = 1, aes(group = gender, colour=gender)) + 
ggtheme + scale_color_manual(values = colors) 
+1

ない画像を追加することを、私はあなたに感謝 –

答えて

18

あなたがstat_smooth()を使用するので、あなたは(fill=aes()内部で使用されていない場合はグレー)、デフォルトはまた、いくつかの塗りつぶしと線を中心に信頼区間を作るようという伝説キー内部のこのグレー色を取得します。

信頼区間が不要な場合はse=FALSEstat_smooth()に設定してください。

+stat_smooth(method = "loess", formula = y ~ x, level=0, size = 1, 
       aes(group = gender, colour=gender),se=FALSE) 

別の解決策は、伝説から塗りつぶしを除去するが、ラインの周りに信頼区間を維持するために機能guides()override.aes=を使用することです。

+ guides(color=guide_legend(override.aes=list(fill=NA))) 
+0

ポイントが不足しているので、このオーバーライドは、それが中に配置することができますテーマ? –

+1

これはtheme()要素ではなく、美学に基づいて凡例を作成する方法を決定するためではありません。 –

+5

私は+のテーマ(legend.key = element.blank())と一緒に行ったse = Fは私のために働いていませんでした – badgley

9
theme_set(theme_gray() + theme(legend.key=element_blank())) 

あなたはまた、灰色の背景削除する場合:

theme_set(theme_bw() + theme(legend.key=element_blank())) 
-1
+ theme(legend.background=element_blank()) 
+0

これは動作しません私のために。これが本当にうまくいくと思ったらもう少し説明してください。 – Suren

関連する問題