
Rのプロットで色に透明度を指定する方法
adjustcolor()やrgb()を使い、Rのプロットで色に透明度を指定する方法についてまとめます。
Rのプロットで、色に透明度を指定する方法についてまとめます。 例えば、散布図を描くときに、点が重なっている部分がわかりづらいことがあります。 例えば、以下のような散布図を描いたとします。
塗りつぶしをすると、なおさら点が重なっている部分がわかりづらくなります。
plot(x, y, pch = 16)
このように点が重なっている部分が多い場合、点の色に透明度を指定することで、重なっている部分がわかりやすくなります。 Rでは主に以下の方法で、色に透明度を指定することができます。
- 16進数のカラーコードの後ろに透明度を指定する方法
-
adjustcolor()を使う方法 -
rgb()を使う方法
16進数のカラーコードの後ろに透明度を指定する方法
Rでは、16進数のカラーコードの後ろに透明度を指定することができます。 例えば、#RRGGBBAAの形式で、AAの部分に透明度を指定することができます。 例えば、以下のようにして、点の色に透明度を指定することができます。
カラーコードは、色を表すためのコードで、通常は#RRGGBBの形式で表されます。
-
RRは赤の値を16進数で表したもの(00からFFまで) -
GGは緑の値を16進数で表したもの(00からFFまで) -
BBは青の値を16進数で表したもの(00からFFまで)
例えば、#0000FFは青を表すカラーコードです。
plot(x, y, pch = 16, col = "#0000FF80")
adjustcolor()を使う方法
adjustcolor()は、既存の色を微調整するための関数です。 alpha.f引数を使って、透明度を指定することができます。 例えば、以下のようにして、点の色に透明度を指定することができます。
plot(x, y, pch = 16, col = adjustcolor("blue", alpha.f = 0.5))
このようにすると、点の色が半透明になり、重なっている部分がわかりやすくなります。 また、このほうであれば、色の名前を直接指定できるため、カラーコードを覚える必要がありません。 一つの色を複数の透明度で使いたい場合などは、adjustcolor()を使う方法が便利です。 例えば、以下のようにして、点や線の色に異なる透明度を指定することができます。
plot(x, y, pch = 16, col = adjustcolor("blue", alpha.f = 0.9))
# 95%信頼区間を描く
model <- lm(y ~ x)
ord <- order(x)
x_sorted <- x[ord]
conf <- predict(model, interval = "confidence")
conf_sorted <- conf[ord, ]
polygon(
c(x_sorted, rev(x_sorted)),
c(conf_sorted[, 2], rev(conf_sorted[, 3])),
col = adjustcolor("blue", alpha.f = 0.5),
border = NA
)
# 回帰線を描く
abline(model, col = adjustcolor("blue", alpha.f = 0.8), lwd = 5)
rgb()を使う方法
rgb()は、赤、緑、青の値を指定して色を作成する関数です。 alpha引数を使って、透明度を指定することができます。 例えば、以下のようにして、点の色に透明度を指定することができます。
このようにすると、点の色が半透明になり、重なっている部分がわかりやすくなります。 また、この方法では、赤、緑、青の値を直接指定できるため、細かい色の調整が可能です。 注意点としては、各色の値は0から1の範囲で指定する必要があることです。
個人的な好み
個人的には、adjustcolor()を使う方法が便利で、よく使用しています。 その次に直接カラーコードを指定する方法を使用することが多いです。 rgb() はほとんど使用したことがありません。
adjustcolor()を使う場合は、既存の色名を直接指定できるのがとても便利だと思っております。 色名だけでなく、デフォルトカラーのインデックスを指定することもできます。
plot(x, y, pch = 16, col = adjustcolor(2, alpha.f = 0.5))
覚えておくと便利です。
