2012-10-24 1 views
3

enter image description hereComment changer la valeur de la clé de couleur dans heatmap.2? Comme la capture d'écran ci-dessus l'a montré, j'ai utilisé ici la fonction <code>heatmap.2()</code>

comment puis-je changer « Value » dans la barre code couleur pour tout autre nom?

On peut simplement utiliser les données du paquet gplots:

library(gplots) 

data(mtcars) 

x <- as.matrix(mtcars) 

rc <- rainbow(nrow(x), start=0, end=.3) 

cc <- rainbow(ncol(x), start=0, end=.3) 

heatmap.2(x, key=TRUE) 

Un grand merci :-)

+0

heatmap2() ou heatmap.2(), je veux juste être clair. – scottyaz

+0

merci, c'est heatmap.2() – Matt

+0

Dans le pire des cas, vous pouvez enregistrer en pdf, ouvrir dans un éditeur de graphiques vectoriels comme Inkscape ou Illustrator, et éditer le texte "à la main". – flies

Répondre

2

Il est difficile codé. Vous devrez le changer dans le code. Il apparaît à mi-chemin en bas de la section qui tire la clé et la ligne est:

else mtext(side = 1, "Value", line = 2) 

C'est la section du code heatmap.2 qui crée la clé (au moins jusqu'au point où le mot « valeur » apparaît):

if (key) { 
     par(mar = c(5, 4, 2, 1), cex = 0.75) 
     tmpbreaks <- breaks 
     if (symkey) { 
      max.raw <- max(abs(c(x, breaks)), na.rm = TRUE) 
      min.raw <- -max.raw 
      tmpbreaks[1] <- -max(abs(x), na.rm = TRUE) 
      tmpbreaks[length(tmpbreaks)] <- max(abs(x), na.rm = TRUE) 
     } 
     else { 
      min.raw <- min(x, na.rm = TRUE) 
      max.raw <- max(x, na.rm = TRUE) 
     } 
     z <- seq(min.raw, max.raw, length = length(col)) 
     image(z = matrix(z, ncol = 1), col = col, breaks = tmpbreaks, 
      xaxt = "n", yaxt = "n") 
     par(usr = c(0, 1, 0, 1)) 
     lv <- pretty(breaks) 
     xv <- scale01(as.numeric(lv), min.raw, max.raw) 
     axis(1, at = xv, labels = lv) 
     if (scale == "row") 
      mtext(side = 1, "Row Z-Score", line = 2) 
     else if (scale == "column") 
      mtext(side = 1, "Column Z-Score", line = 2) 
     else mtext(side = 1, "Value", line = 2) 
.... lots more code below 

Vous devez taper heatmap.2, puis copiez le code source à un éditeur, puis utilisez la fonction de recherche pour trouver « valeur ». Remplacez "Valeur" par quelque chose d'autre (entre guillemets), puis tapez heatmap.2 <- et collez-le dans le code et appuyez sur retour. (Sauf si vous l'enregistrez, il ne perdure que tant que la session se poursuit.)

+0

Non, merci DWin .. – Matt

+0

Oh, vous venez de prendre une capture d'écran de la ColorKey plutôt que de montrer l'intrigue complète. Je vais modifier. –

+0

J'ai juste essayé de trouver la ligne dans le code source, mais je ne pouvais pas. Pouvez-vous accéder au fichier source? – Matt

6

La fonction heatmap.2 a peut-être changé depuis la réponse de @BondedDust, mais il est désormais possible de changer facilement les étiquettes de touches heatmap.2 via:

key.xlab="New value"

Tout d'abord, votre code d'en haut (en utilisant les couleurs standard):

library(gplots) 
data(mtcars) 
x <- as.matrix(mtcars) 
heatmap.2(x,key=TRUE) 

Before screenshot of key

Maintenant, les x remplacent et les étiquettes y:

library(gplots) 
data(mtcars) 
x <- as.matrix(mtcars) 
heatmap.2(x, key=TRUE , key.xlab="New value", key.ylab="New count") 

After screenshot of key

Questions connexes