2013-03-13 2 views
2

Il y a un problème étrange dans mon tracé heatmap, il a la région blanche, mais je n'ai jamais spécifié la couleur blanche.régions blanches dans heatmap par 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) 

Que signifient les régions blanches? Je pense que cela a quelque chose à voir avec mes données, quel pourrait être le problème?

Merci d'avance.

enter image description here

+1

valeurs NA peut-être? –

+0

@KonradRudolph Plus susceptible d'être le 'quantile.range' utilisé pour définir le' colour.palette' je pense –

Répondre

4

Il est plus probable que vous définissez les pauses des limites quantile 5-95% de. R ne sait pas quelle couleur attribuer des valeurs en dehors de cette plage. Exemple ...

#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

Vous avez raison @ SimonO101. Heatmap par défaut ne sait pas comment le savoir. J'ai utilisé le "heatmap.2" (gplots), cela fonctionne, la valeur au-delà de la gamme sont prises en tant que la valeur de la gamme. – shao