Як відзначається у відповіді Ciro , ви можете використовувати prop_cycle
для встановлення списку кольорів, по яких matplotlib може пройти цикл. Але скільки кольорів? Що робити, якщо ви хочете використовувати один і той же кольоровий цикл для безлічі сюжетів, з різною кількістю ліній?
Однією з тактик було б використання такої формули, як та, яка є у https://gamedev.stackexchange.com/a/46469/22397 , для створення нескінченної послідовності кольорів, де кожен колір намагається значно відрізнятися від усіх, що передували йому.
На жаль, prop_cycle
не приймеш нескінченних послідовностей - він вічно зависне, якщо передаєш його. Але ми можемо взяти, скажімо, перші 1000 кольорів, згенерованих з такої послідовності, і встановити його як кольоровий цикл. Таким чином, для сюжетів з будь-якою розумною кількістю ліній ви повинні отримати чіткі кольори.
Приклад:
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()
Вихід:
Зараз усі кольори різні - хоча я визнаю, що я намагаюся виділити декілька з них!