python - 可视化相关数据热图的紧凑方式
问题描述
我正在尝试可视化该Result
列与其他所有列的相关性。
A_B A_C B_C Result
0 0.318182 0.925311 0.860465 91
1 -0.384030 0.991803 0.996344 12
2 -0.818182 0.411765 0.920000 53
3 0.444444 0.978261 0.944444 64
A_B = (A-B)/(A+B)
也相应地所有其他值。
适用于较小的编号。列,但如果我增加没有。列然后没有。热图中的行数不断堆积。是否有任何紧凑的方式来表示它。
以下代码将重现输出 -
import pandas as pd
import seaborn as sns
data = {'A':[232,243,12,546,67,12,78,11,245],
'B':[120,546,120,210,56,120,56,89,12],
'C':[9,1,5,6,7,43,7,12,64],
'Result':[91,12,53,64,71,436,74,123,641],
}
df = pd.DataFrame(data,columns=['A','B','C','Result'])
#Responsible for (A-B)/(A+B) ,(A-C)/(A+C) and similarly
colnames = df.columns.tolist()[:-1]
for i,c in enumerate(colnames):
if i!=len(colnames):
for k in range(i+1,len(colnames)):
df[c+'_'+colnames[k]]=(df[c]-df[colnames[k]])/(df[c]+df[colnames[k]])
newdf = df[['A_B','A_C','B_C','Result']].copy()
#Plotting A_B,A_C,B_C by ignoring the output of result of itself
plot = pd.DataFrame(newdf.corr().iloc[:-1,-1])
sns.heatmap(plot,annot=True)
我听说但无法找到任何来源的一种技术是表示迷你矩形中的每个相关因子,例如 根据它,将给定的地图视为从左下角开始的 3*3 和 (0,0) 的矩阵, A_B 将在 (1,1) 中表示 A_C 在 (2,1) 中,B_C 在 (2,2) 中。但是,我不明白怎么办?
解决方案
推荐阅读
- jenkins - 为什么我的 Jenkins 不能与 Katalon 的 TestSuit 一起使用
- laravel - 如何在 Laravel 5.8 中覆盖更新方法
- javascript - npm:在 Electron 应用程序中执行命令时找不到命令
- hibernate - 合并两个实体并获取数据
- ios - 为 Ionic iframe 集成应用内购买
- python - 如何在跨度矩形顶部绘制小提琴图的主体?
- c++ - C++ 技术建议中的多线程环境中从另一个线程暂停和恢复一个线程
- node.js - 我如何在 gulp 4.0 版中重写这个 gulpfile.js
- javascript - 如果已经使用同一用户控件的不同实例上传了同名文件,如何限制从用户控件的一个实例上传文件
- postgresql-11 - 如何在 postgres 中使用序列名获取表名和列名?