0
I généré une carte thermique en utilisant heatmap.2 du paquet gplots:R - heatmap.2: des rangées et des colonnes de réapprovisionnement
library(gplots)
abc <-read.csv(file="abc.txt", header=T, sep="\t", dec=".")
abcm<-as.matrix(abc)
def <-read.csv(file="def.txt", header=T, sep="\t", dec=".")
defm<-as.matrix(def)
mean <-read.csv(file="mean.txt", header=T, sep="\t", dec=".")
meanm<-as.matrix(mean)
distance.row = dist(as.matrix(def), method = "euclidean")
cluster.row = hclust(distance.row, method = "average")
distance.col = dist(t(as.matrix(abc)), method = "euclidean")
cluster.col = hclust(distance.col, method = "average")
my_palette <- colorRampPalette(c("red", "yellow", "green"))(n = 299)
heatmap.2(meanm, trace="none", dendrogram="both", Rowv=as.dendrogram(cluster.row), Colv=as.dendrogram(cluster.col), margins = c(7,7), col=my_palette)
avec deux méthodes de classification différentes pour chaque dendrogramme.
Maintenant, je veux réorganiser les objets, de sorte que les carrés verts forment une diagonale. Comment je fais ça?
EDIT: mon entrée exemple ici
structure(c(1, 0.6798, 0.6604, 0.7101, 0.6771, 0.6725, 0.6696,
0.6548, 0.676, 0.6811, 0.6798, 1, 0.656, 0.6763, 0.8163, 0.781,
0.7811, 0.6503, 0.7811, 0.855, 0.6604, 0.656, 1, 0.6532, 0.6498,
0.6459, 0.6455, 0.7532, 0.6521, 0.6536, 0.7101, 0.6763, 0.6532,
1, 0.672, 0.669, 0.6669, 0.6517, 0.6748, 0.6786, 0.6771, 0.8163,
0.6498, 0.672, 1, 0.7828, 0.7838, 0.6441, 0.7736, 0.8227, 0.6725,
0.781, 0.6459, 0.669, 0.7828, 1, 0.8361, 0.6447, 0.7574, 0.7796,
0.6696, 0.7811, 0.6455, 0.6669, 0.7838, 0.8361, 1, 0.638, 0.7566,
0.7772, 0.6548, 0.6503, 0.7532, 0.6517, 0.6441, 0.6447, 0.638,
1, 0.6563, 0.6459, 0.676, 0.7811, 0.6521, 0.6748, 0.7736, 0.7574,
0.7566, 0.6563, 1, 0.7778, 0.6811, 0.855, 0.6536, 0.6786, 0.8227,
0.7796, 0.7772, 0.6459, 0.7778, 1), .Dim = c(10L, 10L), .Dimnames = list(
c("sp1", "sp2", "sp3", "sp4", "sp5", "sp6", "sp7", "sp8",
"sp9", "sp10"), c("sp1", "sp2", "sp3", "sp4", "sp5", "sp6",
"sp7", "sp8", "sp9", "sp10")))
Pouvez-vous inclure des données d'échantillons? Le plus simple est d'utiliser 'dput()' avec un sous-ensemble de vos données. –
@LukeC voir mes modifications! – rororo
Merci @ rororo- Je pense que pour être complet, vous devez inclure 'cluster.row' et' cluster.col' afin que les utilisateurs puissent réellement tracer le heatmap comme vous l'avez fait. Cependant, je pourrais mal vous comprendre - vous voulez réorganiser vos lignes et colonnes de sorte que vous obtenez une diagonale. Cela ne casserait-il pas votre dendrogramme? Pour sp 4, 1, 8 et 3, ce n'est pas nécessairement important (il suffit de retourner cette branche) mais pour sp 9, 6 et 7, je ne vois pas de configuration de dendrogramme qui permettrait la diagonale. Voir les arguments 'Rowv' et' Colv' pour 'heatmap.2' pour plus d'informations. Si je ne vous comprends pas, je m'excuse! –