До сих пор я не видел конструкцию if-else в функции plot. Я бы изменил список меток:
X = [(1, 4), (2, 6), (3, 2), (4, 8), (5, 3), (6,1)]
labels = [-1, 0, 0, -1, 0, -1]
fig, ax = plt.subplots()
labels = ["xb" if item == -1 else "or" for item in labels]
for x,l in zip(X, labels):
ax.plot(x[0],x[1], l)
plt.show()
Стоит также отметить, что для разброса и построения диаграммы используются разные соглашения для определения маркеров. Ярлыки на графике не работают на разброс , где размер s, цвет c и стиль маркера m должны предоставляться отдельно.