2013-12-15 137 views
21

私の目標は、ggplotで複数のプロットを作成し、gridExtraパッケージのgrid.arrangeを使用してそれらを単一のプロットに結合することです。ggplotの凡例サイズをデフォルトサイズより小さくする

grid.arrangeを横に並べて表示しようとすると、私のggplot内の凡例(1つのプロットのサイズが適切です)が大きすぎるという問題があります。結果の結合プロットは、x軸を縮小しますが、凡例の元のサイズを維持します。その結果、不必要に大きな伝説の隣に、非常に痩せたプロットができます。だから私は各プロットの凡例のサイズを小さくして、私のプロットを並べて配置できるようにしたいと思います。あるいは、実際のプロットの中にそれらを持って来るのに十分なほどに収縮させることができます。

V1<-rnorm(10) 
V2<-rnorm(10) 
V3<-rnorm(10) 
DF<-data.frame(V1,V2,V3) 


ggplot(DF,aes(x=V1,y=V2,size=V3))+ 
geom_point(fill='red',shape=21)+ 
theme_bw()+ 
scale_size(range=c(5,20)) 

このプロットコマンドは、プロットの右側に標準凡例サイズを生成します。

enter image description here

私は別のテーマ要素使用して試してみた:

+theme(legend.key.size = unit(0.5, "cm") 

または

+theme(legend.key.width=unit(0.3,"cm"),legend.key.height=unit(0.3,"cm"),legend.position = c(0.7, 0.8)) 

をそして、私はこれらのテーマのコマンドを使用して、凡例を大きくすることができますが、私はできません凡例を既定の凡例よりも小さくします。凡例をデフォルトサイズを超えて縮小する方法はありますか?

私のpdfデバイスのデフォルトサイズを変更して、より広範なものにすることができます。しかし、大きなpdfサイズで作業したいと思います。

答えて

19

凡例の全体的なポイントは、プロット上の美学(例えば、色、塗りつぶし、形状、またはサイズ)を凡例で識別されたレベルにマッピングすることです。パラメータlegend.key.size,.width、および.heightは、凡例要素を囲むボックスのサイズを調整します。色、塗りつぶし、およびシェイプを使用すると、凡例のアイテムを好きなだけ小さくできますが、サイズを指定すると、要素のサイズによってどの凡例アイテムに対応するかがわかります。したがって、凡例アイテムは対応するサイズプロット上にあるものに。

オプション1:プロット内の凡例を入れてここ

はあなたを助けるかもしれない3つの可能性があります。

ggplot(DF,aes(x=V1,y=V2,size=V3))+ 
    geom_point(fill='red',shape=21)+ 
    theme_bw()+ 
    scale_size(range=c(5,20))+ 
    theme(legend.justification=c(1,0), legend.position=c(1,0)) 

オプション2:あなたができる場合facet_wrap(...)を使用してください。この方法では、プロットのセットについて凡例を1つだけ取得します。

オプション3:色とサイズを使用して、サイズの凡例を完全に非表示にします。

ggplot(DF,aes(x=V1,y=V2,size=V3, color=V3))+ 
    geom_point(shape=19)+ 
    theme_bw()+ 
    scale_size(range=c(5,20), guide="none")+ 
    scale_color_gradient(high="#ff0000", low="#ffffcc") 

関連する問題