Целью цветовой карты является сопоставление числа в интервале [0-1] с цветом.
, если рассмотреть цветовую карту tab10
, plt.cm.tab10(0.0)
вернет цвет в крайнем левом углу край карты цветов, а plt.cm.tab10(1.0)
возвращает цвет по правому краю.
Здесь пользователь хочет получить столько цветов, сколько имеется являются категориями (скажем, N
), поэтому они генерируют N
чисел, равных интервалу в интервале [0-1].
Например, если мы предположим, что categories
содержит 4 элемента, то
[i/float(len(categories)-1) for i in range(len(categories))]
возвращает
[0.0, 0.3333333333333333, 0.6666666666666666, 1.0]
, передавая каждое из этих чисел в plt.cm.tab10()
, эти числа преобразуются в 4 отдельных цвета
[plt.cm.tab10(i/float(len(categories)-1)) for i in range(len(categories))]
возвращает
[(0.12156862745098039, 0.4666666666666667, 0.7058823529411765, 1.0),
(0.8392156862745098, 0.15294117647058825, 0.1568627450980392, 1.0),
(0.8901960784313725, 0.4666666666666667, 0.7607843137254902, 1.0),
(0.09019607843137255, 0.7450980392156863, 0.8117647058823529, 1.0)]
Обратите внимание, что все это можно записать гораздо более компактно, например:
plt.cm.tab10(np.linspace(0,1,len(categories)))