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.
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.