matrices lineas hacer graficos graficas graficar encimar ejes dibujar como matplotlib

lineas - ¿Cómo elegir un nuevo color para cada línea trazada dentro de una figura en matplotlib?



matplotlib python 3 (5)

Me gustaría NO especificar un color para cada línea trazada:

for i in range(20): ax1.plot(x, y)

Si mira la imagen para esto, matplotlib intenta elegir colores para cada línea que son diferentes, pero eventualmente reutiliza los colores. Solo quiero evitar que repita los colores ya utilizados Y / O darle una lista de colores para usar.


En las versiones 1.0+ de matplotlib puede usar axes.color_cycle (vea, example ), y en versiones anteriores, Axes.set_default_color_cycle (vea, example ).


Estoy usando 3-rd uno de estos 3 por lo general, también me wasny comprobación 1 y 2 versión.

from matplotlib.pyplot import cm #variable n should be number of curves to plot (I skipped this earlier thinking that it is obvious when looking at picture - srry my bad mistake xD): n=len(array_of_curves_to_plot) #version 1: color=cm.rainbow(np.linspace(0,1,n)) for i,c in zip(range(n),color): ax1.plot(x, y,c=c) #or version 2: - faster and better: color=iter(cm.rainbow(np.linspace(0,1,n))) c=next(color) plt.plot(x,y,c=c) #or version 3: color=iter(cm.rainbow(np.linspace(0,1,n))) for i in range(n): c=next(color) ax1.plot(x, y,c=c)

ejemplo de 3:


No sé si puedes cambiar el color automáticamente, pero podrías explotar tu lazo para generar diferentes colores:

for i in range(20): ax1.plot(x, y, color = (0, i / 20.0, 0, 1)

En este caso, los colores variarán de negro a 100% verde, pero puede sintonizarlo si lo desea.

Consulte los argumentos de matplotlib plot () y busque el argumento de la palabra clave de color .

Si desea alimentar una lista de colores, simplemente asegúrese de tener una lista lo suficientemente grande y luego use el índice del ciclo para seleccionar el color

colors = [''r'', ''b'', ...., ''w''] for i in range(20): ax1.plot(x, y, color = colors[i])


También puede cambiar el ciclo de color predeterminado en su archivo matplotlibrc . Si no sabe dónde está ese archivo, haga lo siguiente en Python:

import matplotlib matplotlib.matplotlib_fname()

Esto le mostrará la ruta a su archivo matplotlibrc actualmente utilizado. En ese archivo, encontrará entre muchos otros ajustes también el de axes.color.cycle . Simplemente coloque la secuencia deseada de colores y la encontrará en cada trama que haga. Tenga en cuenta que también puede usar todos los nombres de colores html válidos en matplotlib.


prop_cycle

color_cycle quedó en desuso en 1.5 a favor de esta generalización: http://matplotlib.org/users/whats_new.html#added-axes-prop-cycle-key-to-rcparams

# cycler is a separate package extracted matplotlib. from cycler import cycler import matplotlib.pyplot as plt plt.rc(''axes'', prop_cycle=(cycler(''color'', [''r'', ''g'', ''b'']))) plt.plot([1, 2]) plt.plot([2, 3]) plt.plot([3, 4]) plt.plot([4, 5]) plt.plot([5, 6]) plt.show()

También se muestra en el ejemplo (ahora mal nombrado): http://matplotlib.org/1.5.1/examples/color/color_cycle_demo.html mencionado en: https://.com/a/4971431/895245

Probado en matplotlib 1.5.1.