【问题标题】:Different labels for scatterplot in Matplotlib [duplicate]Matplotlib中散点图的不同标签[重复]
【发布时间】:2021-10-06 00:28:09
【问题描述】:

我有以下数据和代码,我试图用散点图绘制数据,但是我不知道如何在实际绘图中分离类的标签:

X = np.array([[3,4],[1,4],[2,3],[6,-1],[7,-1],[5,-3],[2,4]] )
y = np.array([-1,-1, -1, 1, 1 , 1, 1 ])

[...]
plt.axline((0,b),slope=a, color='r', linestyle='-', label="Decision Boundy")
plt.scatter(X[:,0],X[:,1],c=y)
plt.legend()
plt.show()

导致剧情:

是否可以为颜色/类别设置单独的标签,或者我必须单独绘制它们?

【问题讨论】:

  • 这个answer 是否适用于您正在寻找的东西?
  • 不是,我正在寻找类似于 = plt.scatter(X[:,0],X[:,1],c=y,labels=["c1","c2"]) 的解决方案。我可以简单地定义由颜色分隔的类的标签
  • 那不是该帖子的第二个答案所显示的吗?我可能遗漏了什么。
  • 哦,你说得对,我没看第二个答案!这确实是我想要的,谢谢

标签: python matplotlib plot


【解决方案1】:

给你:

import numpy as np
import matplotlib.pyplot as plt

X = np.array([[3,4],[1,4],[2,3],[6,-1],[7,-1],[5,-3],[2,4]] )
y = np.array([-1,-1, -1, 1, 1 , 1, 1 ])

# get indices of each label
class_a = np.where(y == 1)
class_b = np.where(y == -1)

fig, ax = plt.subplots()
b = 1.5
a = 1
ax.axline((0,b),slope=a, color='r', linestyle='-', label="Decision Boundy")
ax.scatter(X[class_a][:,0],X[class_a][:,1],c='y', label="class a")
ax.scatter(X[class_b][:,0],X[class_b][:,1],c='b', label="class b")
ax.legend()
ax.set_xlim(-10,10)
ax.set_ylim(-10,10)
plt.show()

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-12-13
  • 2018-07-25
  • 1970-01-01
  • 2017-08-24
  • 2014-10-20
  • 1970-01-01
  • 2022-06-15
相关资源
最近更新 更多