Ich habe eine Liste von Zahlen wie folgt:
%Vor%Ich möchte diese Zahlen in Farben für die Anzeige konvertieren. Ich möchte Graustufen, aber wenn ich diese Zahlen verwende, gibt es einen Fehler:
%Vor%... was ich verstehe, liegt daran, dass es 1 überschreitet.
Als nächstes versuchte ich, die Elemente in der Liste mit der höchsten Nummer in der Liste zu teilen, um Werte kleiner als 1 zu geben. Aber dies ergibt eine sehr enge Farbskala mit kaum einem Unterschied zwischen den Werten.
Gibt es irgendeine Möglichkeit, den Farben einen minimalen und maximalen Bereich zu geben und diese Werte in Farbe umzuwandeln? Ich benutze Matplotlib.
Das Modul matplotlib.colors
ist das, wonach Sie suchen. Dies bietet eine Reihe von Klassen zum Zuordnen von Werten zu Colourmap-Werten.
Der allgemeine Ansatz besteht darin, die minima
und maxima
in Ihren Daten zu finden. Verwenden Sie diese, um eine Normalize
-Instanz zu erstellen (andere Normalisierungsklassen sind verfügbar, z. B. logarithmische Skalierung). Als Nächstes erstellen Sie ein ScalarMappable
mit der Normalize
-Instanz und der ausgewählten Colormap . Sie können dann mapper.to_rgba(v)
verwenden, um von einem Eingabewert v
über Ihre normalisierte Skala auf eine Zielfarbe zu mappen.
Erzeugt die Ausgabe:
%Vor% Die matplotlib.colors
Moduldokumentation enthält bei Bedarf weitere Informationen.
Tags und Links python matplotlib