首页 > 解决方案 > 使用公共轴绘制两个变量的分箱相关性

问题描述

我有三个列表已加载到 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 轴上具有相关性。

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

我敢肯定这已经被问过,但我遇到的一切似乎都在查看多个分布图。

标签: pandasdataframeseaborncorrelation

解决方案


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

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 作为线图。


推荐阅读