2010-06-10 12 views
11

Tengo una serie de líneas que cada una debe trazarse con un color separado. Cada línea está formada por varios conjuntos de datos (regiones positivas, negativas, etc.) y me gustaría poder crear un generador que alimente un color a la vez en un espectro, por ejemplo, el gist_rainbow, mapa shown here.Crear un generador de color a partir de un mapa de colores determinado en matplotlib

he encontrado las siguientes obras pero parece muy complicado y más difícil importante recordar,

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) 

Por otra parte, no cubre la gama de colores en el mapa gist_rainbow, tengo que volver a definir un mapa .

Tal vez un generador no es la mejor manera de hacerlo, si es así ¿cuál es la forma aceptada?

Respuesta

18

Para colores índice de un mapa de colores específica que puede utilizar:

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)) 
+0

: Hola, quería preguntarle cómo puedo usar esto en mis program.I tener, por ejemplo, células que tienen valores enteros (vacío = 0, lleno = 1 ...). ¿Cómo puedo hacer que "vacío" corresponda al color 'rojo', lleno al color blanco, etc. Tengo una función en la que hago la trama ".... im = plt.imshow (mydata, cmap = plt.get_cmap ('gist_earth')) ". ¿Cómo debo implementar lo anterior? (si decimos lo mismo). ¡Gracias! – George

+0

@George: Como usted lo describe, no estoy seguro de por qué esto no funciona para usted. Posiblemente publique una pregunta completa con un pequeño ejemplo. – tom10

+0

: Si puede consultar aquí http://stackoverflow.com/questions/8929456/how-to-create-a-movie-in-relation-to-matlab (en la parte actualizada) donde creo el gráfico. Cómo puedo ¿Implemento tu ejemplo? (Si insistes que voy a publicar una nueva respuesta) ¡Gracias! – George

Cuestiones relacionadas