Frage

ich eine Reihe von Linien haben, dass jede Notwendigkeit, mit einer separaten Farbe aufgetragen werden. Jede Zeile ist eigentlich aus mehreren Datensatz aus (positiv, negativ Regionen etc.) und so ich möchte in der Lage sein, einen Generator zu schaffen, die eine Farbe zu einem Zeitpunkt über ein Spektrum füttern wird, zum Beispiel der gist_rainbow Karte hier gezeigt.

Ich habe die folgenden Werke gefunden, aber es scheint sehr kompliziert und was noch wichtiger ist schwierig, sich daran zu erinnern,

from pylab import *

NUM_COLORS = 22

mp = cm.datad['gist_rainbow']
get_color = matplotlib.colors.LinearSegmentedColormap.from_list(mp, colors=['r', 'b'], N=NUM_COLORS)
...
# Then in a for loop
    this_color = get_color(float(i)/NUM_COLORS)

Darüber hinaus ist es nicht den Bereich der Farben in der gist_rainbow Karte bedecken, ich habe eine Karte neu zu definieren.

Vielleicht ist ein Generator nicht der beste Weg, dies zu tun, wenn ja, was die akzeptierte Art und Weise ist?

War es hilfreich?

Lösung

Um Indexfarben von einem bestimmten colormap Sie verwenden können:

import pylab
NUM_COLORS = 22

cm = pylab.get_cmap('gist_rainbow')
for i in range(NUM_COLORS):
    color = cm(1.*i/NUM_COLORS)  # color will now be an RGBA tuple

# or if you really want a generator:
cgen = (cm(1.*i/NUM_COLORS) for i in range(NUM_COLORS))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top