У меня есть много пользовательских 2d точечных объектов, каждый из которых имеет:
- координаты x и y
- метка 1 ° (целое число от -1 до + inf): это будет представленов цвете маркеров (индекс cmap)
- метка 2 ° (целое число в диапазоне [1 3]): я хочу, чтобы этот был представлен в типе маркера
Дело в том, что многие точки будут иметь значение метки 1 °, но могут отличаться на метке 2 ° и наоборот.
Я попытался извлечь точки, относящиеся к значению метки 2 °, и построить их отдельно, таким образом:
pointsSubset1 = getPointsWithLabel2Value1()
pointsSubset2 = getPointsWithLabel2Value2()
pointsSubset3 = getPointsWithLabel2Value3()
# just assume x y and labels values are obtained correctly
plt.scatter(x1, y1, c=listOfLabels1ForSubset1, cmap="nipy_spectral", marker='s') # plotting pointsSubset1
plt.scatter(x2, y2, c=listOfLabels1ForSubset2, cmap="nipy_spectral", marker='.') # plotting pointsSubset2
plt.scatter(x3, y3, c=listOfLabels1ForSubset3, cmap="nipy_spectral", marker='<') # plotting pointsSubset3
Я думал, что это будет работать, но это не так. Маркеры установлены правильно, но не цвета ...
Пример игнорирования координат x и y:
В этом случае point1 из подмножества1 будету маркера, отличного от point2, от subset2, но оба будут иметь один и тот же цвет (черный), потому что, когда они отображаются отдельно, хотя они имеют разные значения label1, оба будут отображены на первый цвет в спектре ....
Я хочу, чтобы индексы цветов в cmap совпадали между подмножествами точек, и я не думаю, что передача пользовательского массива цветов - это решение, поскольку метка 1 возможных значений находится в диапазоне [-1, + inf](и я не знаю, как управлять нормализацией cmap).
Заранее спасибо.