2010/12/07

Rでマゼンタ-黒-緑になるバリアフリーなカラーパレットを生成する

バリアフリーなヒートマップを描くために、マゼンタ-黒-緑のカラーパレットが使いたかったのですが、R でどうやって良いのかわからなかったので自作しました。簡単な方法を知っている人がいれば教えてください。

[code]
magentablackgreen <- function(n) {
r <- c(
round( seq.int(236, 0, by=-236/(n-1)) ),
rep(0, n)
)
g <- c(
rep(0, n),
round( seq.int(0, 255, by=255/(n-1)) )
)
b <- c(
round( seq.int(140,0, by=-140/(n-1)) ),
rep(0, n)
)
rgb(r, g, b, max=255)
}
[/code]

[code]
cols <- magentablackgreen(25)
[/code]
のように使います。

heatmap.2() で col = magentablackgreen(25) とかすると良いと思います。



colorRamps package のなかに magenta2green ってのがあるが真ん中が黒じゃない!!!

参考: 色盲の人にもわかるバリアフリープレゼンテーション法

追記: やっぱりあったもっと簡単な方法
[code]
m2b2g <- colorRampPalette(c("#EC008C", "black", "green"))
pie(rep(1,50), col=m2b2g(50))
[/code]
kkobayashiさんにはてブコメントで教えてもらいました! どもです。



さらに追記: @ma_ko に colorpanel という関数を教えてもらった。
[code]
library(gplots)
m2b2g <- colorpanel(50, low="magenta", mid="black", high="green")
pie(rep(1,50), col=m2b2g)
[/code]