バリアフリーなヒートマップを描くために、マゼンタ-黒-緑のカラーパレットが使いたかったのですが、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]
[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]
plotrixというパッケージにあるsmoothColorsとかはどうでしょうか
返信削除smoothColors("blue",23,"white",23,"red")
みたいな感じでよく使っています