2011-09-01 41 views
24

我想把我的情節傳說放在情節裏面,在一個方面的第一個情節裏面。在第一個方面的位置傳說

下面是一些示例代碼:

df=data.frame(
x=runif(10), 
y=runif(10), 
facet=rep(c("a","b"),5), 
color=rep(c("red","blue"),5)) 

ggplot(data=df,aes(x=x,y=y,color=color))+ 
geom_point()+ 
facet_wrap(~facet,ncol=1) 

下面是導致情節:

plot with legend on outside

這裏大致是我怎麼想它看起來:

plot with legend inside

感謝任何hel你可以提供!

回答

22

假設如果你想傳說背景部分透明的情節被保存爲p

p + opts(
    legend.position = c(0.9, 0.6), # c(0,0) bottom left, c(1,1) top-right. 
    legend.background = theme_rect(fill = "white", colour = NA) 
) 

,改變fill到,例如,"#ffffffaa"

+0

感謝里奇!這在我的示例圖上起作用,但由於某些原因,當我將這些代碼行添加到另一個圖時,圖例消失。任何想法爲什麼這可能是?我把原版文章中的opts代碼放在 – jslefche

+0

其他情節是否保存爲不支持透明度的文件類型(可能是gif)? –

+0

或者您是否更改'legend.position',以便它被移動到圖的邊緣? –

8

或者,現在基礎上@Richie棉花的答案,因爲OPTS在GGPLOT2棄用(仍然假設你的陰謀被定義爲P)

p + theme(legend.position = c(0.9, 0.6) 
      ,legend.background = element_rect(fill = "white", colour = NA))