Como señala la respuesta de Ciro , puede usarprop_cycle
para establecer una lista de colores para que matplotlib recorra el ciclo. ¿Pero cuántos colores? ¿Qué sucede si desea utilizar el mismo ciclo de color para muchos gráficos, con diferentes números de líneas?
Una táctica sería utilizar una fórmula como la de https://gamedev.stackexchange.com/a/46469/22397 , para generar una secuencia infinita de colores donde cada color intenta ser significativamente diferente de todos los que lo precedieron.
Desafortunadamente, prop_cycle
no aceptará secuencias infinitas, se bloqueará para siempre si le pasa una. Pero podemos tomar, digamos, los primeros 1000 colores generados a partir de dicha secuencia y establecerlo como ciclo de color. De esa manera, para las parcelas con cualquier número de líneas, debería obtener colores distinguibles.
Ejemplo:
from matplotlib import pyplot as plt
from matplotlib.colors import hsv_to_rgb
from cycler import cycler
# 1000 distinct colors:
colors = [hsv_to_rgb([(i * 0.618033988749895) % 1.0, 1, 1])
for i in range(1000)]
plt.rc('axes', prop_cycle=(cycler('color', colors)))
for i in range(20):
plt.plot([1, 0], [i, i])
plt.show()
Salida:
Ahora, todos los colores son diferentes, ¡aunque admito que me cuesta distinguir algunos de ellos!