2014-01-11 26 views
14

Hallo我想刪除圖例周圍的灰色矩形。我嘗試了各種方法,但都沒有奏效。刪除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

無論出於何種原因,se = F並不適用於我 - 我去了+ theme(legend.key = element.blank()) – 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