从Seaborn对图获取数据数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Seaborn对图获取数据数组相关的知识,希望对你有一定的参考价值。

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

import seaborn as sns

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

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

enter image description here

谢谢。

答案

仅此行:

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轴 密度图仅作为相对值之间的比较的值 不同类别。

以上是关于从Seaborn对图获取数据数组的主要内容,如果未能解决你的问题,请参考以下文章

使用 pandas 和 seaborn 制作年龄金字塔图

Matplotlib 循环遍历 seaborn 图中的轴以获取多个子图

TypeError:在绘制 seaborn.regplot 时,无法根据规则“安全”将数组数据从 dtype('int64') 转换为 dtype('int32')

seaborn 热图的人工刻度标签

渲染从 firebase firestore 获取的数组数据

从对象数组中获取数据 sql BigQuery