9 votes

R: Centrer la clé heatmap.2 (package gplots)

Je voudrais créer une heatmap via la commande ```heatmap.2()``` avec une légende des couleurs centrée sur 0 (c'est-à-dire couleur blanche -> 0, rouge -> supérieur à 0, bleu -> inférieur à 0) tout en gardant ```scale="none"``` car je m'intéresse à tracer une heatmap des valeurs réelles. Cependant, toutes mes heatmaps ne sont pas centrées sur zéro lorsque j'utilise la ligne suivante :

library(gplots)
outputHeatmap <- heatmap.2(heatmapInputActual, dendrogram="none", Rowv=FALSE,
    Colv=FALSE, col= bluered(256), scale="none", key=TRUE, density.info="none", 
    trace="none", cexRow=0.125, cexCol=0.125, symm=FALSE, symkey=TRUE)

Je pensais que l'utilisation de la commande ```symkey=TRUE``` fonctionnerait, mais ce n'est pas le cas. La variable que j'essaie de représenter dans la heatmap est une matrice de valeurs numériques (n x 3). Un exemple d'entrée problématique à la commande ```heatmap.2()``` décrite ci-dessus est la suivante :

8.408458  5.661144   0.00000000
4.620846  4.932283  -0.46570468
-4.638912 -3.471838  -0.12146109
-4.822829 -3.946024   0.06403327
3.948832  4.520447  -0.31945941

Merci pour votre temps. J'attends avec impatience vos réponses.

10voto

Geek On Acid Points 3103

La solution semble être simplement d'ajouter symbreaks à votre heatmap.2. Voici un exemple entièrement reproductible avec vos données :

library(gplots)
# lire vos données d'exemple
heatmapInputActual <- read.table(textConnection(
"8.408458 5.661144 0.00000000
4.620846 4.932283 -0.46570468
-4.638912 -3.471838 -0.12146109
-4.822829 -3.946024 0.06403327
3.948832 4.520447 -0.31945941
"), as.is=TRUE)
# convertir les données d'exemple en matrice
heatmapInputActual <- as.matrix(heatmapInputActual)
# ajoutez simplement des symbreaks à la fin de votre code
heatmap.2(heatmapInputActual, dendrogram="none", Rowv=FALSE, Colv=FALSE, 
          col = bluered(256), scale="none", key=TRUE, density.info="none", 
          trace="none", cexRow=0.125, cexCol=0.125, symm=F, symkey=T, symbreaks=T)

description de l'image

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X