Como notas de resposta de Ciro , você pode usar prop_cycle
para definir uma lista de cores para matplotlib percorrer. Mas quantas cores? E se você quiser usar o mesmo ciclo de cores para muitos plotagens, com diferentes números de linhas?
Uma tática seria usar uma fórmula como a de https://gamedev.stackexchange.com/a/46469/22397 , para gerar uma sequência infinita de cores onde cada cor tenta ser significativamente diferente de todas as que a precederam.
Infelizmente, prop_cycle
não aceita sequências infinitas - ficará pendurado para sempre se você passar por uma. Mas podemos pegar, digamos, as primeiras 1000 cores geradas a partir de tal sequência e defini-la como o ciclo de cores. Dessa forma, para plotagens com qualquer número razoável de linhas, você deve obter cores distintas.
Exemplo:
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()
Resultado:

Agora, todas as cores são diferentes - embora eu admita que tenho dificuldade em distinguir algumas delas!