Создайте цветной генератор из данной карты цветов в matplotlib

У меня есть серия строк что каждая потребность, которая будет напечатана с отдельным цветом. Каждая строка на самом деле составлена из нескольких наборов данных (положительные, отрицательные регионы и т.д.) и таким образом, я хотел бы смочь создать генератор, который подаст один цвет за один раз через спектр, например, gist_rainbow карта показана здесь.

Я нашел следующие работы, но это кажется очень сложным и что еще более важно трудным помнить,

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)

Кроме того, это не покрывает диапазон, раскрашивает gist_rainbow карта, я должен переопределить карту.

Возможно, генератор не является лучшим способом сделать это, раз так каков принятый путь?

16
задан smci 21 April 2013 в 02:41
поделиться

1 ответ

Для индексации цветов из определенной цветовой карты вы можете использовать:

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))
26
ответ дан 30 November 2019 в 21:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: