【问题标题】:Plotting binned correlation of two variables using common axis使用公共轴绘制两个变量的分箱相关性
【发布时间】:2021-01-09 03:56:37
【问题描述】:

我已将三个列表加载到 pandas 数据框中。

import pandas as pd
df = pd.DataFrame({'x': location})
df = df.assign(y1 = variable1)
df = df.assign(y2 = variable2)

我想绘制 y1 与 y2 的相关性,其中 x 是共同的 x 轴。也就是说,实际上,我想根据 x 位置对 y1 和 y2 值进行分类,在每个 bin 中找到 y1 与 y2 的相关性,然后在整个 x 域中绘制一条相关性线。所以我的最终图将在 y 轴和 x 轴上具有相关性。

我以前使用 scipy binned_statistics 函数绘制条件均值,但我认为我不能轻易地将其扩展到相关性。无论如何,我也想在使用 pandas 方面做得更好,所以如果可能的话,我会尽量避开这条路线。

我确定以前有人问过这个问题,但我遇到的所有问题似乎都在查看多个分布图。

【问题讨论】:

    标签: pandas dataframe seaborn correlation


    【解决方案1】:

    我或多或少地找到了解决方案。实现类似于 here 我有的东西:

    nbins = 20
    df['bins'] = pd.qcut(df['x'], q=nbins)
    plotdatadf = df.groupby('bins')[['y1', 'y2']].corr().iloc[0::2, -1]
    

    这为我提供了一个数据框,每个 bin 的相关系数为 y1y2,其中 bin 在每个 bin 的观察值方面沿 x 均匀划分。

    我现在可以返回到我之前的数据帧并添加具有这些相关值的原始长度的另一列,条件是 if bin[1] then corr = corr[1]-type 复制。然后可以将此列绘制为 y 与我已经存在的 x 作为线图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-25
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 2020-12-02
      • 1970-01-01
      相关资源
      最近更新 更多