1

たとえば、次のように、6 つの異なる線種を描画したいと考えています。

d = data.frame(
  x=sample(1:100,30,rep=T),
  y=sample(1:100,30,rep=T),
  exp=rep(c("foo","bar","baz","yak","yaz","bla"),5)
)
ggplot(d, aes(x, y, color=exp, lty=exp)) + 
geom_point(alpha=0.15) + 
geom_smooth(size=2)

これにより、次の伝説が得られます。

明らかに、size=2ここで外観を変更して、異なる線種を互いに区別できないようにしました。レベル 1、3、および 4 は似ており、レベル 5 と 6 も同様です。調整するとsize=1(またはサイズを完全に除外すると)、目的の結果が得られます。

プロット自体の線がデフォルトよりも太い場合でも、凡例のさまざまな線の種類を意味のある表現にする方法はありますか?

4

1 に答える 1

1

これは、legend 属性のsizeまたはを調整することで実現できます。width例は、ハドリーの wiki on legend attributesから直接取得されます。

# size attribute
theme(legend.key.size = unit(2, "cm"))

(また)

# width attribute
theme(legend.key.width = unit(2, "cm"))

つまり、これを試してください:

ggplot(d, aes(x, y, color=exp, lty=exp)) + 
geom_point(alpha=0.15) + 
geom_smooth(size=2) + 
theme(legend.key.size = unit(2, "cm"))

注:見つからないというエラーが発生したrequire(grid)場合は、ロードすることをお勧めします。unit()

編集:あなたが投稿した例について、このコードで得たプロットは次のとおりです。

ggplot(d, aes(x, y, color=exp, lty=exp)) + 
    geom_point(alpha=0.15) + 
    geom_smooth(size=2, se=FALSE) + 
    theme(legend.key.size = unit(2, "cm"))

ここに画像の説明を入力

于 2013-03-20T09:45:22.613 に答える