带有颜色和图例的散点图

时间:2018-03-15 22:40:55

标签: python matplotlib scatter-plot

我正在努力创建一个散点图,该散点图将显示不同颜色的不同类的点以及图例中类的相应标签。

我有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()

结果

enter image description here

2 个答案:

答案 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()

enter image description here

答案 1 :(得分:0)

取自:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.legend.html

  

第3。明确定义图例中的元素

     

为了完全控制哪些艺术家有传奇条目,这是可能的   传递一个可迭代的图例艺术家,然后是一个可迭代的   传奇标签分别为:

legend((line1, line2, line3), ('label1', 'label2', 'label3'))