Der folgende Python-Code erstellt eine Heatmap einer Matrix, die normalerweise verteilte Werte enthält
%Vor%Dies ist die Ausgabe dieses Codes
Ich möchte den Kontrast dieses Bildes verbessern, indem ich die Werte nahe Null "ausgeblendet" habe. Ich kann dies leicht tun, indem ich die ursprüngliche Daten wie folgt disdigloid skalieren:
%Vor%Hier ist die Ausgabe.
Ich bin zufrieden mit dem Ergebnis, außer der Tatsache, dass in dieser Version das Original Werte wurden gegen skalierte Werte ausgetauscht.
Gibt es eine Möglichkeit, eine nichtlineare Zuordnung von Werten zu Colormap durchzuführen?
Eine Colormap enthält ein Wörterbuch mit roten, grünen und blauen Werten, die über das Intervall [0,1] abgebildet werden. Die linearen segmentierten Colormap Klassendokumente geben das Beispiel
%Vor%"Jede Reihe in der Tabelle für eine gegebene Farbe ist eine Folge von x, y0, y1 Tupeln. In jeder Folge muss x monoton von 0 auf 1 ansteigen. Für jeden Eingabewert z zwischen x [i] und x [i + 1], wird der Ausgabewert einer bestimmten Farbe linear zwischen y1 [i] und y0 [i + 1] interpoliert: "
Die RdYlGn
colormap hat 11 x Werte für jede Farbe von 0 bis 1,0 in Schritten von 0,1. Sie können die Werte cdict
abrufen, indem Sie
Sie können dann die x-Werte in die von Ihnen gewünschten Schritte ändern (solange sie monoton ansteigen und von 0 bis 1 reichen) und eine neue Farbtabelle erhalten, indem Sie matplotlib.colors.LinearSegmentedColormap
auf Ihrem neuen cdict
aufrufen. Es gibt einige großartige Beispiele dafür im Matplotlib Cookbook .
Tags und Links python matplotlib color-scheme color-mapping