目次(まとめ)

◾️ デフォルトのグラデーション色を使用する

◾️ グラデーション色をカスタマイズするには、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です。