R: Wie zeige ich Clustered Matrix Heatmap an (ähnliche Farbmuster sind gruppiert)

8

Ich habe viele Fragen über Heatmap auf der ganzen Site und in den Paketen durchsucht, aber ich habe immer noch ein Problem.
Ich habe Daten geclustert (kmeans / EM / DBscan ..), und ich möchte eine Heatmap erstellen, indem ich den gleichen Cluster gruppiere. Ich möchte, dass ähnliche Farbmuster in der Heatmap gruppiert werden, also sieht es im Allgemeinen wie eine Blockdiagonale aus.
Ich habe versucht, die Daten nach der Cluster-Nummer zu ordnen und anzuzeigen,

k = kmeans(data, 3)
d = data.frame(data)
d = data.frame(d, k$cluster)
d = d[order(d$k.cluster),]
heatmap(as.matrix(d))
, aber es ist immer noch nicht sortiert und sieht folgendermaßen aus:
Aber ich möchte, dass es nach seinem sortiert wird Cluster-Nummer und sah so aus:
Kann ich das in R machen? Ich habe viele Pakete durchsucht und viele Möglichkeiten ausprobiert, aber ich habe immer noch ein Problem.
Danke vielmals.     
question 16.04.2011, 16:28
quelle

2 Antworten

8

Sie können dies mit reshape2 und ggplot2 wie folgt tun:

%Vor%

    
Andrie 16.04.2011 17:18
quelle
2

Sie sollten Rowv und Colv auf NA setzen, wenn Sie die Dendrogramme und die nachfolgende Bestellung nicht möchten. BTW, Du solltest auch von der Skalierung absetzen. Mit dem df von Andrie:

%Vor%

Tatsächlich basiert diese ganze Heatmap auf image() . Sie können mit image weghacken, um ein Plot genau so zu erstellen, wie Sie es möchten. Heatmap verwendet intern layout (), so dass es schwierig ist, die Ränder zu setzen. Mit Bild könnte man zB:

%Vor%

Um ein Diagramm zu erzeugen, das seitlich weniger Ränder hat. Sie können auch Achsen, Farben, ... manipulieren. Sie sollten sich unbedingt das RColorBrewer -Paket ansehen

(Diese benutzerdefinierte Funktion basiert auf der internen Darstellung, die von heatmap btw verwendet wird, vereinfacht für die Illustration und um das gesamte Dendrogramm loszuwerden)

    
Joris Meys 17.04.2011 15:22
quelle

Tags und Links