我想寻求有关 2 个不同数据集的相关矩阵并将其生成为热图的支持。
以下是示例数据:
表情 | 公关 | 指标 |
---|---|---|
订婚 | 0.33 | 0.70 |
兴奋 | 0.33 | 0.15 |
专注 | 0.33 | 0.36 |
兴趣 | 0.67 | 0.47 |
放松 | 0.55 | 0.20 |
压力 | 0.44 | 0.40 |
由于这些数据不是从csv文件导入的(由于以后需要修改),所以是通过df创建的。并且使用 astype(float)
将值转换为浮点数这里提供了我创建 df 和转换类型的方式。
data = {
'Expression':['Engagement', 'Excitement', 'Focus','Interest','Relaxation','Stress'],
'PR': ['0.33','0.33','0.33','0.67','0.55','0.44'],
'Metrics': ['0.70','0.15','0.36','0.47','0.20','0.40']
}
df['PR']=df['PR'].astype(float) #Converts object dtype to float
df['Emotiv Metrics']=df['Emotiv Metrics'].astype(float) #Converts object dtype to float
之后,如果我使用
df.corr()
,它只会提供如图所示的相关结果:
PR Metrics
PR 1.000000 -0.048189
Metrics -0.048189 1.000000
但是,我想生成的是一个相关矩阵,显示 PR 和指标中的EACH 表达式之间的相关性,以及截取图像中提供的内容,包括Metrics 和PR。
这种情况我该怎么办?
或者如果上面的代码有什么错误,也请指出。
DataFrame.dot
与转置DataFrame
与seaborn.heatmap
一起使用:
import seaborn as sb
df1 = df.set_index('Expression')[['PR','Metrics']]
df = df1.dot(df1.T).rename_axis(index='name1', columns='name2')
print (df)
name2 Engagement Excitement Focus Interest Relaxation Stress
name1
Engagement 0.5989 0.2139 0.3609 0.5501 0.3215 0.4252
Excitement 0.2139 0.1314 0.1629 0.2916 0.2115 0.2052
Focus 0.3609 0.1629 0.2385 0.3903 0.2535 0.2892
Interest 0.5501 0.2916 0.3903 0.6698 0.4625 0.4828
Relaxation 0.3215 0.2115 0.2535 0.4625 0.3425 0.3220
Stress 0.4252 0.2052 0.2892 0.4828 0.3220 0.3536
sb.heatmap(df, annot=True)