Ответ 1
Я предполагаю, что вы хотите нарисовать отдельные точки. В таком случае, если вы определяете массив numpy:
colormap = np.array(['r', 'g', 'b'])
тогда вы можете сгенерировать массив цветов с помощью colormap[categories]
:
In [18]: colormap[categories]
Out[18]:
array(['r', 'b', 'g', 'g', 'g', 'b', 'r', 'r'],
dtype='|S1')
import matplotlib.pyplot as plt
import numpy as np
a = np.array([[ 1, 2, 3, 4, 5, 6, 7, 8 ],
[ 9, 8, 7, 6, 5, 4, 3, 2 ]])
categories = np.array([0, 2, 1, 1, 1, 2, 0, 0])
colormap = np.array(['r', 'g', 'b'])
plt.scatter(a[0], a[1], s=50, c=colormap[categories])
plt.show()
дает