为了账号安全,请及时绑定邮箱和手机立即绑定

如何创建斯皮尔曼相关性的散点图或热图

如何创建斯皮尔曼相关性的散点图或热图

慕莱坞森 2022-12-27 15:31:47
我有两个数据框“A”和“B”,每个数据框都有 1000 个值(每列中缺少一些值)。我想计算数据帧的 spearman 相关性并绘制它们。图可以是散点图或热图。但我不知道该怎么做。任何资源或参考资料都会有所帮助。谢谢。
查看完整描述

2 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

检查此代码:


import pandas as pd

import seaborn as sns

import matplotlib.pyplot as plt


A = [...] # insert here your list of values for A


B = [...] # insert here your list of values for B


df = pd.DataFrame({'A': A,

                   'B': B})


corr = df.corr(method = 'spearman')


sns.heatmap(corr, annot = True)


plt.show()

我得到这个相关矩阵:

//img1.sycdn.imooc.com//63aa9f800001e2b706280472.jpg

该列A与其自身高度相关(显然,这种情况总是发生),而列A与之间的相关性B非常低。


版本信息:


Python      3.7.0

matplotlib  3.2.1

pandas      1.0.4

seaborn     0.10.1


查看完整回答
反对 回复 2022-12-27
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

您可以使用seabornjointplot中的函数来绘制数据点。这不仅为您提供了散点图,还提供了边际分布。

df = pd.DataFrame({"A": A, "B": B})
sbn.jointplot(x="A", y="B", data=df, alpha=0.2)

//img1.sycdn.imooc.com//63aa9f93000153fa06080582.jpg

要获得 spearman 的相关系数,您可以使用模块中的spearmanr函数scipy:


from scipy.stats import spearmanr

r, p = spearmanr(df["A"], df["B"])

# r = 0.008703025102683665


查看完整回答
反对 回复 2022-12-27
  • 2 回答
  • 0 关注
  • 610 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号