0
我有一個1941 x 119矩陣的值[-2,2],高度聚集在零附近。用於熱圖的非線性顏色梯度R
我想創建顯示我已經與hclust發現簇熱圖。我想要使用漸變顏色漸變,以便數值範圍從綠色變爲紅色,同時在中心變暗(或變淺)。問題在於數據聚集在零附近,像redgreen(n)這樣的線性顏色斜坡和RColorBrewer無法捕捉到細微的變化併產生褪色的圖。
我試圖建立一個色階使用「顏色面板」中的{gplots}和S形函數在我的數據來指定破發點,像這樣:
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