0

enter image description here

I can't add legend to my scatterplot. The problem that color is encoded by variable y which takes two values 0 or 1. X comes from PCA method, I try to plot 2 principal components with different colors corresponding to different y. I get error mesage "No handles with labels found to put in legend."

Tried different tutorial, but still cofused.

fig = plt.figure(figsize=(10,5))
ax = fig.add_subplot(111)

plt.scatter(x_reduced[:,0], x_reduced[:,1],c=y, alpha=0.5)

plt.legend()
plt.show()
elenaby
  • 167
  • 2
  • 11

1 Answers1

1

If you're using a newer version of Matplotlib (>=3.1), then you can add legends to a scatterplot following this answer: Scatterplot legends

Otherwise, a workaround is to do two separate calls to plt.scatter

# one scatter for y == 0
plt.scatter(x_reduced[y==0,0], x_reduced[y==0,1], alpha=0.5, label = "group1")
# another scatter for y == 1
plt.scatter(x_reduced[y==1,0], x_reduced[y==1,1], alpha=0.5, label = "group2")

# create legend for both
plt.legend()
Callin
  • 744
  • 3
  • 11