ggplot2で列の値をそのまま色の値にしつつレジェンドも表示する(scale_*_identity関数)

カテゴリ: r

ggplot2パッケージではscale_*_identityという名前の関数を使うと、審美的属性にマッピングした列の値をそのまま色やサイズ、透明度に反映できます。ただし、デフォルトでは凡例が表示されません。

表示するにはguide引数に"legend"とか"colorbar"とか指定すればOK!

library(ggplot2)
ggplot(data.frame(x=1,color="red")) +
  aes(x, x, color=color) +
  geom_point() +
  scale_color_identity(guide = "legend")

set.seed(1L)

ggplot(data.frame(x = rnorm(100),
                  y = rnorm(100),
                  alpha = runif(100))) +
  aes(x, y, alpha = alpha) +
  geom_point() +
  scale_color_identity(guide = "legend")

服の色ごとの売り上げとか、グループごとの重要度とか、予め値が決まっている場合に便利ですね!もっと早く知りたかったなあ。