全自动方法

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

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐