首页 > 解决方案 > seaborn kde情节中的水平是什么意思?

问题描述

我正在尝试制作二维数据的等高线图。但是,我想手动输入轮廓。我在 seaborn.kde文档中找到了“级别”选项,我可以在其中手动定义轮廓的级别。但是,我不知道这些级别是什么意思。文档给出了这个定义 -

水平对应于密度的等比例。

密度等比是什么意思?有没有我可以阅读的参考资料?

标签: pythonseaborncontourkdekernel-density

解决方案


这里level描述了低于给定阈值的累积质量。如文档中的示例所述。

要在其上绘制等高线的等高线级别或值的数量。向量参数必须在 [0, 1] 中具有递增的值。水平对应于密度的等比例:例如,概率质量的 20% 将位于为 0.2 绘制的等高线下方。仅与双变量数据相关

您可以通过 2 种方式描述级别 -

  1. 在概率质量函数中指定所需的分区数(级别 = 5 形成 4 条等高线,将概率质量函数分成 5 个部分)
  2. 明确提及每个轮廓的阈值作为向量

这里提到的分区描述了等高线图之外的区域。因此,0.2 意味着 20% 的概率质量位于代表 20% 的第一个等值线之外。玩弄下面的代码可以更清楚地说明这一点。

我在下面展示了两种实现供您参考。

import seaborn as sns
geyser = sns.load_dataset("geyser",)

#Levels as equal cuts in the probability mass function
sns.kdeplot(
    data=geyser, x="waiting", y="duration", hue="kind",
    levels=5
)

在此处输入图像描述

#Levels as explicitly described cuts in the probability mass function
sns.kdeplot(
    data=geyser, x="waiting", y="duration", hue="kind",
    levels=[0.3, 0.4, 0.8]
)

在此处输入图像描述


推荐阅读