参考教程:https://blog.csdn.net/weixin_39251985/article/details/114214607
示意图
做词向量句类的图,每一个点的label都是这个词,这就导致了如果直接生成legend会有很多很多个图例,我只需要三种样式的点,然后概括一下每一簇的特点。 像图中这样:
给指定的画图语句赋变量名
因为我画点用的是循环,部分代码如下:
for i, l in enumerate(kmeans_model.labels_):
plt.plot(low_dim_embs[i][0], low_dim_embs[i][1], color=colors[l], marker=markers[l], ls='None')
就用了比较笨的方法,随便挑三个是红黄蓝的点,用elif语句重点照顾这三个点,给他们赋一个名,如下:
for i, l in enumerate(kmeans_model.labels_):
if i != 1 and i != num1 and i != num2:
plt.plot(low_dim_embs[i][0], low_dim_embs[i][1], color=colors[l], marker=markers[l], ls='None')
elif i == 1:
p1, = plt.plot(low_dim_embs[i][0], low_dim_embs[i][1], color=colors[l], marker=markers[l], ls='None')
elif i == num1:
p2, = plt.plot(low_dim_embs[i][0], low_dim_embs[i][1], color=colors[l], marker=markers[l], ls='None')
elif i == num2:
p3, = plt.plot(low_dim_embs[i][0], low_dim_embs[i][1], color=colors[l], marker=markers[l], ls='None')
可以不用细看我的plt.plot() 语句,只要注意给需要加图例的语句赋一个变量名就可以。比较关键的是变量名一定要加逗号,p1, 和p2, 这样,否则后面不会显示图例。
图例展示
然后再一句图例展示的语句:
plt.legend([p1,p2,p3],[u'环境描写', u'动作描写', u'外貌描写'], loc='best')
loc="best" 表示图例会找最合适的位置放。
就是说吴老师两天没回我消息了嘤😅
|