webentwicklung-frage-antwort-db.com.de

Wie konvertiere ich Datenwerte in Farbinformationen für Matplotlib?

Ich verwende die Klasse matplotlib.patches.Polygon, um Polygone auf einer Karte zu zeichnen. Tatsächlich werden die Informationen über die Koordinaten der Ecken der Polygone und ein Gleitkomma-Datenwert für jedes "Polygon" angegeben. Jetzt möchte ich diese Datenwerte (im Bereich von 0 bis 3e15) in Farbinformationen konvertieren, um sie schön zu visualisieren. Was ist die beste Vorgehensweise, um dies in Python zu tun?

Ein Ausschnitt meines Codes:

poly = Polygon( xy, facecolor=data, edgecolor='none')
plt.gca().add_patch(poly)
14
HyperCube

Im RGB-Farbsystem werden für jede Farbe zwei Datenbits verwendet: Rot, Grün und Blau. Das bedeutet, dass jede Farbe auf einer Skala von 0 bis 255 ausgeführt wird. Schwarz wäre 00,00,00, während Weiß 255,255,255 wäre. Matplotlib bietet viele vordefinierte Farbkarten, die Sie verwenden können. Sie sind alle auf 255 normalisiert, daher laufen sie von 0 bis 1. Sie müssen also nur Ihre Daten normalisieren. Dann können Sie Farben aus einer Farbzuordnung wie folgt manuell auswählen:

>>> import matplotlib.pyplot as plt

>>> Blues = plt.get_cmap('Blues')
>>> print Blues(0)
(0.9686274528503418, 0.9843137264251709, 1.0, 1.0)
>>> print Blues(0.5)
(0.41708574119736169, 0.68063054575639614, 0.83823145908467911, 1.0)
>>> print Blues(1.0)
(0.96555171293370867, 0.9823452528785257, 0.9990157632266774, 1.0)

Hier sind alle vordefinierten Colormaps. Wenn Sie daran interessiert sind, Ihre eigenen Farbkarten zu erstellen, hier ist ein gutes Beispiel. Auch here ist ein Artikel von IBM zum sorgfältigen Auswählen von Farben. Dies sollten Sie in Betracht ziehen, wenn Sie zur Darstellung von Daten Farbe verwenden.

23
Mr. Squig

Um einen Wert von diesem Wert zu konvertieren, wird der Wert von 0 bis + unendlich in einen Wert von 0,0 bis 1,0 umgewandelt

import matplotlib.pyplot as plt

price_change =  price_change ** 2 / (1 + price_change ** 2)
Blues = plt.get_cmap('Blues')
print Blues(price_change)

Eine vollständige Liste der Colormaps finden Sie hier: http://matplotlib.org/users/colormaps.html

Ich denke, was Sie suchen, ist eine ColorMap. Informationen zur Verwendung der von matplotlib bereitgestellten Informationen finden Sie im folgenden Beitrag.

Farbe der Linie in Matplotlib mit Colormaps setzen

Wenn Sie Ihre eigenen erstellen möchten, bietet die folgende Seite ein schönes Beispiel.

http://code.activestate.com/recipes/52273-colormap-returns-an-rgb-Tuple-on-a-0-to-255-scale-/

1
juniper-