Ich habe mit Python, Pandas und Seaborn gearbeitet, um eine Heatmap mit verschiedenen Colormaps/Spalten zu erhalten. Dank this Frage habe ich folgendes:Plotten sortiert Heatmap (x, y) Werte Farben
Beispieldatenrahmen (sample.csv):
X,a,b,c
A,0.5,0.7,0.4
B,0.9,0.3,0.8
C,0.3,0.4,0.7
Grundstück Heatmap mit Seaborn
import pandas as pd
import matplotlib as mpl
# Set new Backend to Use Seaborn
# mpl.use('Agg')
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import colorsys
# Working example data:
df = pd.DataFrame([[0.5,0.7,0.4],[.9,.3,.8],[.3,.4,.7]],['A','B','C'])
# Get Color List
N = 3
COL = [colorsys.hsv_to_rgb(x*1.0/N, 0.7, 0.5) for x in range(N)]
with sns.axes_style('white'):
for i, name in enumerate(df.columns):
# Create cmap
colors = COL[i]
cmap = sns.light_palette(colors, input='rgb', reverse=False, as_cmap=True)
sns.heatmap(df.mask(df.isin(df[name])!=1),
cbar=False,
square=True,
annot=False,
cmap=cmap,
linewidths=0.1)
plt.show()
Dieses eine Heatmap mit verschiedenen Farbtabellen erzeugen/Spalte (die Werte dienen nur zur Verdeutlichung des Problems):
Nun möchte Ich mag die gleiche Handlung mit dem sortierten Datenrahmen wie produzieren:
X,col1,col2,col3
A,0.7,0.5,0.4
B,0.9,0.8,0.3
C,0.7,0.4,0.3
Des Versuch, die ursprüngliche Farbe des Paares (Index, Spalte) zu halten, wie die folgenden erwarteten Entwurf Ausgabe (Werte sind Richtwerte, was ich sind brauchen würde nur die Farben):
EDIT:
Einige Tippfehler wurden korrigiert, jetzt ist df der Datenrahmen, der die Arbeitsmatrix darstellt.
ich nicht sicher bin ich das Problem hier verstanden, verließ ich eine vorläufige Antwort, aber ich würde diese Frage bearbeiten klarer zu machen, wo Sie sind und welche genaue Problem Sie konfrontiert sind – rll
ein [minimales Arbeitsbeispiel] Stellen (http://stackoverflow.com/help/mcve) mit dem, was du bisher gemacht hast, damit ich verstehen kann, was eigentlich dein Problem ist – rll
Ich dachte, dass meine zweite Bearbeitung geholfen hätte. Das Arbeitsbeispiel ist noch da, ich kann eine Ausgabe nicht reproduzieren, da es mein Problem ist. –