【问题标题】:Get data array from a Seaborn pairplot从 Seaborn 配对图中获取数据数组
【发布时间】: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


    【解决方案1】:

    就这一行:

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

    【讨论】:

    • 为什么在矩阵图中它的最大值是8,而孤立的最大值是1.2?
    猜你喜欢
    • 2021-05-24
    • 2018-01-24
    • 2017-10-06
    • 2021-09-14
    • 2014-05-04
    • 2016-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多