2011-09-01 15 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 inside

plot with legend on outside

そして、ここで私はそれを見たいか大体れます

ありがとうございましたあなたが提供することができます!あなたは伝説の背景が部分的に透明たい場合

答えて

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
(まだあなたのプロットをpとして定義されていると仮定)

または、@Richieコットンの答えに構築し、OPTS以来、今ggplot2で廃止され

p + theme(legend.position = c(0.9, 0.6) 
      ,legend.background = element_rect(fill = "white", colour = NA)) 
関連する問題