量的データのプロットに関して、色を付ける方法を紹介する。また、凡例をどうつければいいか一例を示す。なお、データがカテゴリカルデータの場合はこちら の記事をみてほしい。
グレースケールで表示する方法
グレースケール
gray(level)
(levelは0から1の間)で指定できる。0で黒、1で白になる。
RGBで指定する方法
赤、緑、青の値で色を表現する。Rではrgb(red,green,blue)
で指定する。デフォルトだとそれぞれの色は0から1の間にする必要がある。rgb(red,green,blue,maxColorValue=255)
とするとそれぞれの色の範囲を0から255として指定できる。
red, green, blueのパラメータのうちの一つを変化させた。他の二つのパラメータは0
red, green, blueのパラメータのうちの一つを変化させた。他の二つのパラメータは1
HSV で指定する方法
HSV による色の指定
HSV はhue(色相)、saturation(彩度)、value (明度)によって色を表現する。RGBの場合と同じように、hsv(hue, saturation,value)
によって指定できる。上の図は、3つのパラメータのうち一つだけを0から1へ変化させた場合の色の変化を示したもの。なお、変化させない2つのパラメータは共に1である。
colorRampを使う方法
colorRampによる色指定の例
colorRampでは、複数の色を指定して、それらの色のグラデーションを用いて表すことができる。図は上から順に、
pal = colorRamp(c("blue", "red"), space="rgb")
pal = colorRamp(c("blue","white","red"),space="rgb")
pal = colorRamp(c("blue","green","yellow","orange","red"),space="rgb")
として色を指定した。このとき、palは0から1の数値を引数に取りその値に対応するRBG値を返す関数である。
凡例の付け方
一番上の散布図の凡例はSDMtoolsというライブラリのlegend.gradientという関数を用いて書いた。
pnts = cbind(x =c(2.5,3,3,2.5), y =c(3,3,2,2))
legend.gradient(pnts,
cols=apply(colorRamp(c("blue","yellow","red"),space="rgb")(0:100/100)/256,1,function(x){rgb(x[[1]],x[[2]],x[[3]])}),
limits=c(0,1),
title=""
)
pntsは凡例の位置、colsは描画するのに使う色(2色以上で今は101色)、limitsは値の範囲、titleは凡例の題名。
使ったコード
https://github.com/kubotam-m/R_codes/blob/master/color_test.R