编码颜色时向散点图添加图例

Posted

技术标签:

【中文标题】编码颜色时向散点图添加图例【英文标题】:Adding legend to scatterplot when color is encoded 【发布时间】:2020-02-15 16:09:15 【问题描述】:

我无法在散点图中添加图例。 颜色由变量 y 编码的问题,变量 y 取两个值 0 或 1。 X 来自 PCA 方法,我尝试绘制 2 个不同颜色对应不同 y 的主成分。 我收到错误消息“没有找到带有标签的句柄放在图例中。”

尝试了不同的教程,但仍然感到困惑。

fig = plt.figure(figsize=(10,5))
ax = fig.add_subplot(111)

plt.scatter(x_reduced[:,0], x_reduced[:,1],c=y, alpha=0.5)

plt.legend()
plt.show()

【问题讨论】:

您能提供数据示例吗? (x_reduced, y) 如果您使用的是较新版本的 Matplotlib (>=3.1),此答案将有所帮助:(***.com/a/56236062/4531017) 【参考方案1】:

如果您使用的是较新版本的 Matplotlib (>=3.1),那么您可以按照以下答案将图例添加到散点图中:Scatterplot legends

否则,解决方法是对 plt.scatter 进行两次单独调用

# one scatter for y == 0
plt.scatter(x_reduced[y==0,0], x_reduced[y==0,1], alpha=0.5, label = "group1")
# another scatter for y == 1
plt.scatter(x_reduced[y==1,0], x_reduced[y==1,1], alpha=0.5, label = "group2")

# create legend for both
plt.legend()

【讨论】:

以上是关于编码颜色时向散点图添加图例的主要内容,如果未能解决你的问题,请参考以下文章