Jak zauważa odpowiedź Ciro , możesz użyć prop_cycle
do ustawienia listy kolorów, przez które matplotlib będzie się przełączać. Ale ile kolorów? A co, jeśli chcesz użyć tego samego cyklu kolorów dla wielu wykresów, z różną liczbą linii?
Jedną z taktyk byłoby użycie formuły podobnej do tej z https://gamedev.stackexchange.com/a/46469/22397 , aby wygenerować nieskończoną sekwencję kolorów, w której każdy kolor stara się znacznie różnić od wszystkich, które go poprzedzały.
Niestety, prop_cycle
nie przyjmie nieskończonych sekwencji - zawiesi się na zawsze, jeśli ją zdasz. Ale możemy wziąć, powiedzmy, pierwsze 1000 kolorów wygenerowanych z takiej sekwencji i ustawić je jako cykl kolorów. W ten sposób w przypadku działek z dowolną rozsądną liczbą linii należy uzyskać rozróżnialne kolory.
Przykład:
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()
Wynik:
Teraz wszystkie kolory są inne - chociaż przyznaję, że trudno mi rozróżnić kilka z nich!