Я считаю, что с вашим кодом есть две проблемы.
- Во-первых, вам нужно вызывать scatter () один раз для каждого кластера, который вы строите. Поскольку вы не включили весь код, необходимый для воспроизведения вашей переменной
tfs_embedded
, я не знаю, что это будет включать в ваш случай. Предположительно, однако, вы можете разделить эти данные на несколько вызовов функции разброса.
- Вторая проблема заключается в том, что вам нужно вызывать scatter по осям, а не по графику (то есть, ax.scatter вместо plt.scatter).
Пример кода ниже покажет вам, как это может работать. Выходной график составляет здесь .
import matplotlib.pyplot as plt
x = [1,2,4,3,7,5]
y = [2.2,1.0,0.8,8.6,3.6,7.8]
C1 = 'red'
C2 = 'blue'
L1 = "Cluster 1"
L2 = "Cluster 2"
fig = plt.figure(figsize = (10, 10))
ax = plt.axes()
ax.scatter(x[0:3], y[0:3], label=L1, c=C1, edgecolors='none')
ax.scatter(x[3:6], y[3:6], label=L2, c=C2, edgecolors='none')
ax.legend()
plt.show()