Hallo,
ich habe folgendes Problem:
ich habe ein numpy-array mit unterschiedlichen Werten (floats64). Ich würde gerne jedem Wert einer Farbe zuweisen - wie bei einer colormap.
Anschließend möchte ich diese Farbwerte ausgespuckt kriegen.
Das eigentliche Problem:
Ich habe den Energieverbrauch einzelner Wohnungen bestimmt. Auf einer Darstellung habe ich Rechtecke gezeichnet. Jedes Rechteck symbolisiert eine Wohnung. Nun sollen diese Rechtecke eine entsprechende Farbe bekommen - nach dem Energieverbrauch. Eine Wohnung die Wenig verbraucht, erhält die Farbe grün; eine Wohnung die viel verbraucht, erhält die Farbe rot. Und dazwischen natürlich ein fließender Übergang der Farbe.
Hat jemand eine Idee, wie ich das am besten umsetze?
Vielen Dank
Gruß
Einfache Colormaps erstellen
@Pittan: Hilft das hier weiter: http://wiki.scipy.org/Cookbook/Matplotl ... _colormaps ?
Edit: die 'RdYlGn' ist wahrcheinlich schon das was Du brauchst.
Edit: die 'RdYlGn' ist wahrcheinlich schon das was Du brauchst.
Hallo BlackJack,
vielen Dank für deine Antwort.
Den Link habe ich bereits gesehen, nur werde ich aus dem dort geschriebenen Code nicht schlau.
Wie kann erhalte ich einen Farbwert aus der Colormap, wenn ich einen float-Wert gegeben habe?
Angenommen, 0.0 steht für grün, 1150 steht für rot. Die Wohnung, die ich betrachte, hat den Wert 758.
Wie erhalte ich dann die entsprechende Farbe?
Danke
Gruß
vielen Dank für deine Antwort.
Den Link habe ich bereits gesehen, nur werde ich aus dem dort geschriebenen Code nicht schlau.
Wie kann erhalte ich einen Farbwert aus der Colormap, wenn ich einen float-Wert gegeben habe?
Angenommen, 0.0 steht für grün, 1150 steht für rot. Die Wohnung, die ich betrachte, hat den Wert 758.
Wie erhalte ich dann die entsprechende Farbe?
Danke
Gruß
Colormap-Objekte sind aufrufbar. In Deinem Fall bietet es sich an die mit einer Gleitkommazahl zwischen 0.0 und 1.0 aufzurufen, Du müsstest den Wert also normalisieren:
Statt mit einem Skalaren Wert könnte man die Funktion auch mit einem Numpy-Array aufrufen und sich damit die RGBA-Werte für mehrere Eingabewerte auf einmal geben lassen.
Code: Alles auswählen
In [40]: cm = matplotlib.cm.RdYlGn_r
In [41]: 1. / 1150 * 758
Out[41]: 0.6591304347826087
In [42]: cm(1. / 1150 * 758)
Out[42]: (0.99377162666881791, 0.76309113292133102, 0.44821224142523375, 1.0)
In [43]: cm(1. / 1150 * 758, bytes=True)
Out[43]: (253, 194, 114, 255)