2013-03-13 3 views
2

В моем графике теплоты есть странная проблема, у нее белый регион, но я никогда не указывал белый цвет.белые области в тепловой карте от R

# cluster.in.da is my data 
cluster.in.da <- t(scale(t(cluster.in.da))) 
quantile.range <- quantile(cluster.in.da, probs = seq(0, 1, 0.01)) 
palette.breaks <- seq(quantile.range["5%"], quantile.range["95%"], 0.01) 
color.palette <- colorRampPalette(c("green", "black", "blue"))(length(palette.breaks) - 1) 
heatmap(cluster.in.da,scale="none",breaks=palette.breaks,col=color.palette) 

Что означают белые регионы? Я думаю, что это имеет какое-то отношение к моим данным, что может быть проблемой?

Заранее спасибо.

enter image description here

+1

значения NA, может быть? –

+0

@KonradRudolph Скорее всего, это 'quantile.range', используемый для определения' colour.palette', я думаю –

ответ

4

Это, скорее всего, потому, что вы установили перерывы на 5-95% квантиль пределы. R не знает, какой цвет назначать значения за пределами этого диапазона. Пример ...

#No NA's in the data 
m <- matrix(rnorm(100) , nrow = 10) 
quantile.range <- quantile(m , probs = seq(0, 1, 0.01)) 
palette.all <- seq(quantile.range["0%"], quantile.range["100%"], 0.01) 
palette.half <- seq(quantile.range["50%"], quantile.range["100%"], 0.01) 


color.palette <- colorRampPalette(c("green", "black", "blue"))(length(palette.all) -1) 
h.all(m , scale="none",breaks=palette.all,col=color.palette) 

enter image description here

color.palette <- colorRampPalette(c("green", "black", "blue"))(length(palette.half) -1) 
h.all(m , scale="none",breaks=palette.half,col=color.palette) 

enter image description here

+0

Вы правы @ SimonO101. По умолчанию heatmap не знает, как это знать. Я использовал «heatmap.2» (gplots), он работает, значение за пределами диапазона принимается так же, как значение диапазона. – shao

Смежные вопросы