从Seaborn对图获取数据数组

问题描述 投票:0回答:1

我使用了seaborn pairplot函数,并想提取一个数据数组。

import seaborn as sns

iris = sns.load_dataset("iris")
sns.pairplot(iris, hue="species")

我想获得下面以black颜色显示的点的数组:

enter image description here

谢谢。

python seaborn kde kernel-density
1个回答
1
投票

仅此行:

data = iris[iris['species'] == 'setosa']['sepal_length']

您对蓝线感兴趣,因此,'setosa'详细说明。为了过滤iris数据帧,我创建了此过滤器:

iris['species'] == 'setosa'

这是一个布尔数组,如果True数据帧的'species'列中的对应行为iris,则值为'setosa',否则为False。使用此行代码:

iris[iris['species'] == 'setosa']

我将过滤器应用于数据框,以便仅提取与'setosa'种类关联的行。最后,我提取'sepal_length'列:

iris[iris['species'] == 'setosa']['sepal_length']

如果我使用以下代码为此数据数组绘制KDE:

data = iris[iris['species'] == 'setosa']['sepal_length']
sns.kdeplot(data)

我得到:

enter image description here

这就是您感兴趣的上方图

这些值通过计算KDE的方式与上面的图不同。我引用此reference

[密度图中的y轴是 核密度估计。但是,我们需要注意 指定这是一个概率密度,而不是概率。的 差异是概率密度是单位概率 x轴。要转换为实际概率,我们需要找到 在x轴上特定距离处的曲线下面积。有些 令人困惑的是,因为这是概率密度,而不是 概率,y轴可以取大于1的值。唯一的 密度图的要求是曲线下的总面积 集成到一个。我通常倾向于将y轴 密度图仅作为相对值之间的比较的值 不同类别。

© www.soinside.com 2019 - 2024. All rights reserved.