我正在努力创建一个散点图,该散点图将显示不同颜色的不同类的点以及图例中类的相应标签。
我有52个样本,2个特征和3个类(1,2和3级)。数据位于X
数组中,标签位于labels
数组中。
我想绘制包含相应颜色的类名(1,2和3)的图例。
我的代码:
import numpy as np
import matplotlib.pyplot as plt
x = np.random.rand(52,2)
labels = np.ones(x.shape[0])
labels[0:8] = 1
labels[8:31] = 2
labels[31:] = 3
plt.scatter(x[:,0], x[:,1], c = labels, label = labels)
plt.legend()
plt.show()
结果:
答案 0 :(得分:2)
执行此操作的一种方法是单独绘制类:
x = np.random.rand(52,2)
labels = np.ones(x.shape[0])
labels[0:8] = 1
labels[8:31] = 2
labels[31:] = 3
for i in np.unique(labels):
plt.scatter(x[np.where(labels==i),0], x[np.where(labels==i),1], label=i)
plt.legend()
plt.show()
答案 1 :(得分:0)
取自:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.legend.html
第3。明确定义图例中的元素
为了完全控制哪些艺术家有传奇条目,这是可能的 传递一个可迭代的图例艺术家,然后是一个可迭代的 传奇标签分别为:
legend((line1, line2, line3), ('label1', 'label2', 'label3'))