75

次のようにggplot2で線をプロットしています:

ggplot(iris, aes(Petal.Width,Petal.Length,color=Species)) + geom_line() + theme_bw()

現在のプロット.

レジェンドマークは小さいのでもっと大きくしたいです。サイズを変更すると、プロット上の線も変更されます。

ggplot(iris, aes(Petal.Width,Petal.Length,color=Species)) + geom_line(size=4) + theme_bw()

太いプロット ライン.

しかし、凡例に太い線だけを表示したいのですが、プロットの線を細くしたいのです。私は使用しようとしましlegend.key.sizeたが、線の幅ではなく、マークの正方形を変更します:

library(grid)  # for unit
ggplot(iris,aes(Petal.Width,Petal.Length,color=Species))+geom_line()+theme_bw() + theme(legend.key.size=unit(1,"cm"))

大きな伝説の鍵

私もポイントを使用しようとしました:

ggplot(iris,aes(Petal.Width,Petal.Length,color=Species)) + geom_line() + geom_point(size=4) + theme_bw()

もちろん、プロットと凡例の両方に影響します。

ポイント

プロットには線を、凡例には点/点を使用したかったのです。

そこで、次の 2 点についてお尋ねします。

  1. プロットを変更せずに凡例の線幅を変更するには?
  2. プロットに線を描く方法ですが、凡例に点/点/正方形を描く方法は?
4

1 に答える 1

113

凡例でのみ線幅を変更するには、 functionguides()colour=使用guide_legend()してoverride.aes=から、 setと一緒に使用する必要がありますsize=。これは、プロットで使用されるサイズをオーバーライドし、凡例のためだけに新しいサイズ値を使用します。

ggplot(iris,aes(Petal.Width,Petal.Length,color=Species))+geom_line()+theme_bw()+
       guides(colour = guide_legend(override.aes = list(size=3)))

ここに画像の説明を入力

凡例の点とプロットの線を取得するにはgeom_point(size=0)、点が非表示になるように追加してから、線を削除してより大きな点を取得するようにguides()設定します。linetype=0size=3

ggplot(iris,aes(Petal.Width,Petal.Length,color=Species))+geom_line()+theme_bw()+
       geom_point(size=0)+
       guides(colour = guide_legend(override.aes = list(size=3,linetype=0)))

ここに画像の説明を入力

于 2013-05-03T09:56:08.913 に答える