ggplot2
を使用して、線と点を組み合わせてプロットしようとしている単純なデータフレームがあります。データが次のようになっていると仮定します。
df <- data.frame(x=rep(1:10,2), y=c(1:10,11:20),
group=c(rep("a",10),rep("b",10)))
そして、私はプロットを作ろうとしています:
g <- ggplot(df, aes(x=x, y=y, group=group))
g <- g + geom_line(aes(colour=group))
g <- g + geom_point(aes(colour=group, alpha = .8))
g
1つの例外を除いて、結果は正常に見えます。 geom_point
レイヤーのalpha
を示す追加の凡例があります。
アルファ設定を示す凡例ではなく、グループの色を示す凡例を維持するにはどうすればよいですか?
外観は、ggplot
呼び出し内でsetまたはmappedにできます。
aes(...)
内で定義される美学は、データからmappedであり、凡例が作成されます。aes()
の外側で定義することで、美的要素はsetで単一の値になります。この場合、set _alpha = 0.8
_およびmap _colour = group
_にしたいようです。
これをする、
_alpha = 0.8
_をaes()
定義の外側に配置します。
_g <- ggplot(df, aes(x = x, y = y, group = group))
g <- g + geom_line(aes(colour = group))
g <- g + geom_point(aes(colour = group), alpha = 0.8)
g
_
mapped変数の場合、適切な_guide = 'none'
_呼び出しで_scale_...
_を使用することにより、凡例の表示を抑制することができます。例えば。
_g2 <- ggplot(df, aes(x = x, y = y, group = group)) +
geom_line(aes(colour = group)) +
geom_point(aes(colour = group, alpha = 0.8))
g2 + scale_alpha(guide = 'none')
_
同一のプロットを返します
[〜#〜] edit [〜#〜] @Joranのコメントはスポットオンです。答えをより包括的にしました。
不要な部分の後にshow.legend = F
コードを追加するだけです。
g <- ggplot(df, aes(x=x, y=y, group=group))
g <- g + geom_line(aes(colour=group))
g <- g + geom_point(aes(colour=group, alpha = .8), show.legend = F)
Ggplot2の古いバージョン(2012年後半にリリースされた0.9.2より前のバージョン)の場合、この回答は機能するはずです。
_colour_scale
_でこれを試しましたが、うまくいきませんでした。 _colour_scale_hue
_アイテムは、デフォルトのパラメーターTRUE
を持つ関数のように機能するようです。 scale_colour_hue(legend=FALSE)
を追加しましたが、うまくいきました。
これがggplotのすべてのカラースケールアイテムに当てはまるかどうかわかりません