繁体   English   中英

从 Seaborn 对图中获取数据数组

[英]Get data array from a Seaborn pairplot

我使用了 seaborn 配对图 function 并想提取一个数据数组。

import seaborn as sns

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

我想得到一个我在下面以黑色显示的点的数组:

在此处输入图像描述

谢谢。

就这一行:

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

您对蓝线感兴趣,因此对'setosa' specie 感兴趣。 为了过滤iris dataframe,我创建了这个过滤器:

iris['species'] == 'setosa'

这是一个 boolean 数组,如果iris dataframe 的'species'列中的相应行是'setosa' ,则其值为True ,否则为False 使用这行代码:

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

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

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

如果我 plot 使用此代码为该数据数组创建 KDE:

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

我得到:

在此处输入图像描述

就是上面你感兴趣的plot

通过计算 KDE 的方式,这些值与上面的 plot 不同。
我引用这个参考

密度 plot 中的 y 轴是 kernel 密度估计的概率密度 function。 但是,我们需要小心地指定这是概率密度而不是概率。 不同之处在于概率密度是 x 轴上每单位的概率。 要转换为实际概率,我们需要在 x 轴上找到特定区间的曲线下面积。 有点令人困惑,因为这是概率密度而不是概率,所以 y 轴可以取大于 1 的值。 密度 plot 的唯一要求是曲线下的总面积积分为 1。 我通常倾向于将密度 plot 上的 y 轴视为仅用于不同类别之间的相对比较的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM