0
Предположим, у меня есть массив X (X.shape = [N, 2]) и метки (labels.shape = N). Я хочу создать разброс X [:, 0], X [:, 1], цвет, соответствующий метке, и отображать только уникальные ярлыки.Matplotlib: отображение только уникальных меток для легенды
Код:
import numpy as np
from numpy.random import rand
import matplotlib
from matplotlib import pyplot as plt
%matplotlib inline
import seaborn as sns
sns.set(context='poster', style='dark')
X = rand(500)
Y = rand(500)
labels = np.round(rand(500)*4).astype(int)
print(np.unique(labels)) # array([0, 1, 2, 3, 4])
plt.scatter(X, Y, c=labels, cmap='rainbow') # this does what I want minus the labels
plt.scatter(X, Y, c=labels, cmap='rainbow', label=labels)
plt.legend(loc='best') # this produces 500 labels instead of 5