2017-01-14 1 views
0

J'ai un heatmap de travail, construit avec gplots, comme indiqué ici:R Heatmap: Cacher cellnote pour la valeur cellulaire = 0

heatmap.2(as.matrix(matrix1),cellnote=as.matrix(matrix1), 
    notecol="black",margins =c(9,6),trace="none",density.info="none", 
    col=my_palette,Rowv=NA,Colv=NA,dendrogram="none",scale="row") 

Les données sous-jacentes matrix1 se présente comme suit:

A  AA  AAA  BBB   CASH 

CASH 0   0   0   0 
JSUB 0.22171 0   0   2.20712 
SECR 2.92828 1.97112 3.53786  0.91444 
SENR 18.86672 11.53339 15.06844 21.57709 
SSEN 5.707  1.96225 0.57815  2.93462 
SSUB 0.36507 0.07968 0   0.44985 
SUB  1.0539 0   0   2.37103 
T1  0   0   0   0.56024 
T2  1.87901 0   0   3.00718 
UT2  0   0   0   0.15787 

Mon matrix1, qui a été créé en tant que table pivotante avec la fonction cast à l'aide du package reshape, contient de nombreux zéros. Chaque fois que la valeur dans ma matrice est zéro, je ne voudrais pas afficher une 'cellule', car cela ne fait que compliquer la carte thermique.

Cependant, jusqu'à présent, je n'ai pas compris comment faire cela et je suis reconnaissant pour tout conseil.

Merci!

+0

Ce n'est pas '' ggplot2''. –

+0

Vous avez raison. Je voulais dire 'gplots' - désolé pour la confusion. –

+0

Autre astuce: si vous utilisez 'acast' dans' reshape2', vos données seront déjà une matrice et n'auront donc pas besoin d'être converties en une seule. – Joe

Répondre

1

Pour moi, cela fonctionne juste pour faire une nouvelle matrice remplaçant les zéros avec NAs et passer cela comme argument à cellnote.

matrix2 <- as.matrix(matrix1) 
matrix2[matrix2 == 0] <- NA 

Re-exécution du code en utilisant matrix2

heatmap.2(as.matrix(matrix1),cellnote=matrix2, 
     notecol="black",margins =c(9,6),trace="none",density.info="none", 
     col=my_palette,Rowv=NA,Colv=NA,dendrogram="none",scale="row") 

donne enter image description here

(par la façon dont vous n'avez pas donné my_palette, donc je HASHED ce pour cet exemple.)