Создать цветовой генератор от данного Colormap в MatPlotlib

StackOverflow https://stackoverflow.com/questions/3016283

Вопрос

У меня есть серия строк, которые каждая должна быть нанесена отдельным цветом. Каждая строка фактически состоит из нескольких наборов данных (положительных, отрицательных областей и т. Д.) И поэтому я хотел бы иметь возможность создать генератор, который будет подавать один цвет во время в спектре, например 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 Карта, я должен переопределить карту.

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

Это было полезно?

Решение

Чтобы индексировать цвета из определенного колокольчана, который вы можете использовать:

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))
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top