私は[-2,2]の範囲の値の1941 x 119マトリックスを持ち、ゼロ付近で高度にクラスター化されています。ヒートマップのための非線形色勾配R
私はすでにhclustで発見されたクラスタを明らかにヒートマップを作成します。色の濃いランプを使用して、値が緑色から赤色に変わり、中央が暗く(またはより明るく)なるようにします。問題は、データがゼロ付近でクラスタリングされているため、redgreen(n)やRColorBrewerのような直線的な色のランプが微妙な分散を捕らえず、プロットを洗い流すことができないということです。
私はそうのような私のデータにブレークポイントを指定するには、{gplots}で「colorpanel」を使用して、カラーランプとシグモイド関数を構築しようとした:
library(gplots)
lower <- -1
upper <- 1
growth_rate <- 0.05
# Returns break pts b/w [-1,1]
sig <- function(x) {
return(lower + ((upper-lower)/(1+exp(-growth_rate*x))))
}
breaks <- sig(seq(-30, 30, by=1.0))
breaks <- append(-2, append(breaks, 2)) # Append min and max break pts
ramp <- colorpanel(n=length(breaks)-1, low="green", mid="black", high="red")
その後、私は私のヒートマップを走った:
# 'data' is a 1941 x 119 matrix
heatmap.2(data, main="Heatmap Sigmoid",col=ramp, trace='none', breaks=breaks)
誰もが、すべてが「黒」のビン(の濃淡)に投げ、それらの値を明らかにすることができますカラーランプを構築する方法を知っていますか?
編集:固定画像のアップロード – PanFrancisco