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

为双变量KDE图添加标签:用Matplotlib标准图例替代Seaborn自定义标签

我懂你想要的效果——用Matplotlib原生的标准图例替换Seaborn示例里的自定义标签,这个其实很容易实现,核心就是给每个KDE图层指定label参数,然后直接调用Matplotlib的legend()方法就行。

先给你补全并修正后的完整代码:

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

cmaps = ['Reds', 'Blues', 'Greens', 'Greys']
np.random.seed(0)

# 先创建画布,可选但推荐调整大小
plt.figure(figsize=(8, 6))

for i, cmap in enumerate(cmaps):
    offset = 3 * i
    x = np.random.normal(offset, size=100)
    y = np.random.normal(offset, size=100)
    # 修正你代码里截断的label定义
    label = f'Offset {offset}'
    
    # 绘制双变量KDE时传入label参数
    sns.kdeplot(
        x=x, y=y,
        cmap=cmap,
        fill=True,  # 开启填充,你可以根据需求去掉
        alpha=0.5,  # 调整透明度避免颜色重叠过深
        label=label  # 关键:给这个KDE图层指定标签
    )

# 调用Matplotlib的标准图例,还可以给图例加标题
plt.legend(title='Offset Categories')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.title('Bivariate KDE Plots with Native Matplotlib Legend')
plt.show()

关键说明:

  • Seaborn的kdeplot完全兼容Matplotlib的标签系统,只要在调用时传入label参数,每个KDE图层就会自动关联对应的标签文本。
  • 循环结束后调用plt.legend(),Matplotlib会自动收集所有带标签的绘图元素,生成标准的原生图例,不需要手动创建自定义标签或图例元素。
  • 你还可以通过plt.legend()的参数调整图例的位置(比如loc='upper right')、样式、标题等,完全按照Matplotlib的常规用法来就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:14:28