全自动方法

plt.figure(figsize=[20,20])
scatter=plt.scatter(result[:,0],result[:,1],c=subset_label,label=subset_label)
plt.legend(*scatter.legend_elements(),title="classes")
plt.show()

这样写,添加的图例会自动按照从小到大(0到几)排好序,而不是按照种类在数据集中出现的顺序排序,很是方便.
但是这种写法有一个问题,那就是添加上去的图标只能是label里面的数字,要想改成实际的标签,应该怎么办呢?

改进方法

plt.figure(figsize=[20,20])
scatter=plt.scatter(x,y,c=l,cmap=plt.cm.plasma)
plt.legend(handles=scatter.legend_elements()[0],labels=["one","two","three","four","five"],title="classes")
plt.show()

在labels里面,按照label从小到大的顺序添加实际标签就可以了.
目前还有一个问题,就是不能添加中文,添加中文会报错.
懒得管了,以后注意点吧,画plt尽量不要出现中文.

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐