You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Seaborn散点图自定义图例仅显示单个标签的问题咨询

Seaborn散点图图例自定义标签不生效问题解决

问题根因

你在调用sns.scatterplot()时设置了legend=False,该参数会直接阻止Seaborn生成对应3个物种分类的图例句柄,后续调用scatter.legend()时没有足够的句柄匹配你传入的3个自定义标签,最终只会显示单个标签。

解决方法

方法一:保留自动生成的图例资源(推荐)

去掉legend=False参数,Seaborn会自动生成对应3个分类的图例句柄,直接替换标签即可:

import seaborn as sns
import matplotlib.pyplot as plt
iris = sns.load_dataset("iris")

scatter = sns.scatterplot(x='sepal_length', y ='sepal_width', hue='species', data=iris)
scatter.legend(labels = ['set', 'versi', 'vir'], loc='upper right')
plt.show()

方法二:手动获取句柄生成图例

如果确实需要在绘图时先隐藏图例,可以手动获取绘图生成的句柄后再关联自定义标签:

import seaborn as sns
import matplotlib.pyplot as plt
iris = sns.load_dataset("iris")

scatter = sns.scatterplot(x='sepal_length', y ='sepal_width', hue='species', data=iris, legend=False)
# 手动获取3个分类对应的图例句柄
handles, _ = scatter.get_legend_handles_labels()
scatter.legend(handles=handles, labels = ['set', 'versi', 'vir'], loc='upper right')
plt.show()

内容的提问来源于stack exchange,提问作者Raj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 00:30:01