【发布时间】:2020-09-25 19:16:38
【问题描述】:
我使用了 seaborn pairplot 函数,想提取一个数据数组。
import seaborn as sns
iris = sns.load_dataset("iris")
sns.pairplot(iris, hue="species")
我想得到一个我在下面以黑色颜色显示的点的数组:
谢谢。
【问题讨论】:
标签: python python-3.x seaborn kde kernel-density
我使用了 seaborn pairplot 函数,想提取一个数据数组。
import seaborn as sns
iris = sns.load_dataset("iris")
sns.pairplot(iris, hue="species")
我想得到一个我在下面以黑色颜色显示的点的数组:
谢谢。
【问题讨论】:
标签: python python-3.x seaborn kde kernel-density
就这一行:
data = iris[iris['species'] == 'setosa']['sepal_length']
您对蓝线感兴趣,所以'setosa' scpecie。为了过滤 iris 数据框,我创建了这个过滤器:
iris['species'] == 'setosa'
这是一个布尔数组,如果iris数据帧的'species'列中的对应行是'setosa',则其值为True,否则为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)
我明白了:
就是上面你感兴趣的情节
根据 KDE 的计算方式,这些值与上图不同。
我引用这个reference:
密度图中的 y 轴是概率密度函数 核密度估计。但是,我们需要小心 指定这是概率密度而不是概率。这 差是概率密度是每单位的概率 x 轴。要转换为实际概率,我们需要找到 x 轴上特定区间的曲线下面积。有些 令人困惑,因为这是概率密度而不是 概率,y 轴可以取大于 1 的值。唯一的 密度图的要求是曲线下的总面积 合为一。我通常倾向于认为 y 轴位于 密度图作为值仅用于之间的相对比较 不同的类别。
【讨论】: