Как отмечает 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()
Вывод:
Теперь все цвета разные - хотя я признаю, что мне трудно различить некоторые из них!