Pergunta

Eu tenho uma série de linhas que precisam ser plotadas com uma cor separada. Cada linha é na verdade composta de vários conjuntos de dados (regiões positivas, negativas etc.) e, portanto, eu gostaria de poder criar um gerador que alimentará uma cor de cada vez em um espectro, por exemplo, o gist_rainbow mapa mostrado aqui.

Eu encontrei as seguintes obras, mas parece muito complicado e mais importante para lembrar,

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)

Além disso, não cobre a gama de cores no gist_rainbow Mapa, eu tenho que redefinir um mapa.

Talvez um gerador não seja a melhor maneira de fazer isso, se sim, qual é a maneira aceita?

Foi útil?

Solução

Para indexar as cores de um colorido específico que você pode usar:

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))
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top