目次(まとめ)
◾️ デフォルトのグラデーション色を使用する
◾️ グラデーション色をカスタマイズするには、colorRampPaletteを使用する
こんにちは、みっちゃんです
Rを使って図を書いているんだけど、さまざまな色を "色の名前" や "色コード" で一つずつ指定していくのは大変です。グラデーション色を簡単に指定する方法はありませんか?
Rには、初期状態で、グラデーション色が準備されているので、それを使用することができます。また、独自に、好きな色でグラデーション色をカスタマイズすることも可能です。
今回の記事では、Rでグラデーション色を使用する方法を紹介します。
デフォルトのグラデーション色を使用する
ここでは、以下のように、Rを使って50本の棒からなる図を描いて、色付けしていくことを考えます(Rについてはこちらの記事をご参照ください)。
$ R -q
> barplot(rep(1, 10))
ここで、"rep(1, 10)" とは、"1" を "10" 回繰り返すという意味ですので、高さが "1" の棒グラフが10本描かれます。
それぞれの棒の色は、デフォルトで設定されている色になります(私の場合は、灰色です)。
この棒グラフを、虹色でグラデーションさせたい場合には「rainbow」という変数を使用します。
例えば、以下のように実行します。
> barplot(rep(1, 10), col = rainbow(10))
"col" は、色を指定するためのオプションで、"rainbow" 変数を指定することで、虹色に色付けすることができます。
"(10)" というのは、"rainbow" 変数を10個に分けて使用するという意味で、もし5本ずつ色分けしたいのならば、以下のように実行します。
> barplot(rep(1, 10), col = rainbow(5))
「赤→黄緑→緑→青→紫」という色が、2周続いていることがわかります(色の移り変わりが大きくなります)。
逆に、"rainbow(50)" のように、分ける数を増やすと、色の移り変わりが小さくなります。
> barplot(rep(1, 10), col = rainbow(50))
また、それぞれの棒の色は、"rainbow(50)" のように実行すれば、色コードで取得することができます。
> rainbow(50)
[1] "#FF0000" "#FF1F00" "#FF3D00" "#FF5C00" "#FF7A00" "#FF9900" "#FFB800"
[8] "#FFD600" "#FFF500" "#EBFF00" "#CCFF00" "#ADFF00" "#8FFF00" "#70FF00"
:
(省略)
また、それぞれの色は、"[]" を使って指定することができます。
> rainbow(50)[1]
[1] "#FF0000"
"rainbow" 変数のように、デフォルトで準備されている色パレットとしては、"cm.colors", "heat.colors", "terrain.colors", "topo.colors" などがあります。
グラデーション色をカスタマイズするには、colorRampPaletteを使用する
デフォルトでも、さまざまなグラデーション色を指定することができますが、カスタマイズすることも可能です。
例えば、「赤→青→緑」のように変化するグラデーション色を指定したい場合には、以下のように実行します。
> original <- colorRampPalette(c("red", "blue", "green"))
> barplot(rep(1,10), col = original(10))
また、"red" などで色名を指定していますが、Rで使える色名は600個以上あります(以下のように確認することができます)。
> colors()
[1] "white" "aliceblue" "antiquewhite"
[4] "antiquewhite1" "antiquewhite2" "antiquewhite3"
[7] "antiquewhite4" "aquamarine" "aquamarine1"
:
(省略)
もちろん、色コードで指定してもOKです。