ggplot2: 散布図の色に密度を反映して色付け
散布図のドットを色付けする際に、ドットが集まっている部分ほど濃く色付けする方法を紹介します。
ドットの密度が高い部分を濃くしたいわけですが、実際に「密度」を計算する必要はありません。ドットの色に、半透明な色を指定することで代用できます。半透明な色どうしが重なれば重なるほど、色は濃くなるので、ドットが密集していると濃い色になります。
不透明度(アルファ)を指定
名前や16進数で指定する通常の色は、不透明度の値を持ちません。不透明度は、 transparency や アルファチャンネルなどと呼ばれるパラメーターで追加する必要があります。
ggplot2 では、 geom_point() などで色を指定する際にオプションで、 alpha = 0.3 などと記述することで、アルファを設定できます。
ボルケーノプロットを例にすると、下記のようになります。alpha は、 0 から 1 の範囲で指定します。0が完全に透明で、1が不透明です。
g <- ggplot(de_result, aes(logFC, -log10(PValue)))
g + geom_point(alpha = 0.2)
結果は、下図のようにドットが密集している中央ほど、黒くなります。
黒以外の色を指定した場合も同様です。それぞれの geom_point() にアルファを設定できます。
g + geom_point(data = non_deg, color = "#969696") +
geom_point(data = up_deg, color = "#FC9272", alpha = 0.3) +
geom_point(data = down_deg, color = "#9ECAE1", alpha = 0.3) +
geom_vline(xintercept = c(-1, 1), linetype = "dotted") +
geom_hline(yintercept = 1.3, linetype = "dotted")
この記事が気に入ったらサポートをしてみませんか?