Plotten von sortierten Heatmap-Farbwerten (x, y)

8

Ich habe mit Python, Pandas und Seaborn gearbeitet, um eine Heatmap mit verschiedenen Colormaps / Spalten zu erhalten. Dank dieser Frage habe ich Folgendes getan :

Beispieldatenrahmen (sample.csv):

%Vor%

Plotten Sie Heatmap mit Seaborn

%Vor%

Dies erzeugt eine Heatmap mit verschiedenen Colormaps / Spalten (die Werte dienen nur zur Klärung des Problems):

Nun möchte ich das gleiche Diagramm mit dem sortierten Datenfeld wie folgt erstellen:

%Vor%

Versuchen Sie, die ursprüngliche Farbe des Paares (Index, Spalte) beizubehalten, wie die folgende erwartete Entwurfsausgabe (Werte sind indikativ, was ich nur die Farben benötigen würde):

BEARBEITEN:

Einige Tippfehler wurden korrigiert, jetzt ist df der Datenrahmen, der die Arbeitsmatrix darstellt.

    
Fabio Lamanna 03.12.2015, 16:41
quelle

2 Antworten

2

Sie könnten einmal über das Array iterieren und die Farben erhalten, die jedem Wert entsprechen, und sie in einem NxMx3-Array (Bild) speichern. Dann sortiere das Array und das Bild auf die gleiche Weise, z. Holen Sie die Sortierindizes aus dem ursprünglichen Array und wenden Sie sie auf das Bildfeld an. Dann können Sie das Bild mit plt.imshow anzeigen Sie können dann mit Matplotlib Labels, Ticks, etc. hinzufügen.

Das könnte so aussehen: Sie sollten zuerst ein NxMx3-Array erstellen, um die Farben zu speichern.

im = np.zeros((df.shape[0], df.shape[1], 3))

Sie können dann über jede Spalte iterieren und Ihren Wert von 0 bis 255 skalieren, z.

color_index = (value-min(column))/(max(column)-min(column)*255

dann können Sie

verwenden

color = cmap(color_index)

im[col_index, row_index, :] = color

Wenn Sie über jede Spalte iteriert haben, werden alle Farben in im

gespeichert

Der resultierende Code wäre:

%Vor%     
Randrian 13.12.2015, 10:53
quelle
1

Mit seaborn heatmap musst du nur die verschiedenen Farbkarten zur Verfügung stellen und Setzen Sie vmin und vmax unabhängig von der Reihenfolge. Eigentlich

  

vmin, vmax: schwimmt, optional

     
    

Werte zum Verankern der Colormap, andernfalls werden sie aus den Daten und anderen Schlüsselwortargumenten abgeleitet.

  

Dies bedeutet, dass Sie die Min / Max-Werte nicht angeben müssen, wenn Sie sie nicht außerhalb Ihrer Datenpunkte haben möchten.

    
rll 04.12.2015 10:38
quelle