2 回答
TA贡献1794条经验 获得超7个赞
plt.legend()当情节中有多个“艺术家”时效果最佳。在您的第一个示例中就是这种情况,这就是调用plt.legend(labels)可以毫不费力地工作的原因。
如果您担心编写大量代码行,那么您可以利用for循环。
正如我们在这个例子中看到的,使用了 5 个类:
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
import numpy as np
X, y = make_blobs(centers=5)
ax = plt.subplot(1,1,1)
for c in np.unique(y):
ax.scatter(X[y==c,0],X[y==c,1],label=c)
ax.legend()
np.unique()
返回 y 的唯一元素的排序数组,通过循环遍历这些元素并使用自己的艺术家绘制每个类plt.legend()
可以轻松提供图例。
编辑:
您还可以在制作时为图分配标签,这可能更安全。
plt.scatter(..., label=c)
其次是 plt.legend()
TA贡献1842条经验 获得超21个赞
为什么不简单地执行以下操作?
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.datasets import make_blobs
import numpy as np
X, y = make_blobs()
ngroups = 3
ax = plt.subplot(1, 1, 1)
for i in range(ngroups):
ax.scatter(X[y==i][:,0], X[y==i][:,1], lw=0, s=40, label=i)
ax.legend()
添加回答
举报