gpt4 book ai didi

python - 相关热图

转载 作者:IT老高 更新时间:2023-10-28 22:07:09 25 4
gpt4 key购买 nike

我想使用热图来表示相关矩阵。有一种东西叫做 correlogram在 R 中,但我认为 Python 中没有这样的东西。

我该怎么做?值从 -1 到 1,例如:

[[ 1.          0.00279981  0.95173379  0.02486161 -0.00324926 -0.00432099]
[ 0.00279981 1. 0.17728303 0.64425774 0.30735071 0.37379443]
[ 0.95173379 0.17728303 1. 0.27072266 0.02549031 0.03324756]
[ 0.02486161 0.64425774 0.27072266 1. 0.18336236 0.18913512]
[-0.00324926 0.30735071 0.02549031 0.18336236 1. 0.77678274]
[-0.00432099 0.37379443 0.03324756 0.18913512 0.77678274 1. ]]

我能够根据另一个 question 生成以下热图,但问题是我的值在 0 处被“剪切”,所以我想要一张从蓝色(-1)到红色(1)的 map ,或者类似的东西,但这里不显示低于 0 的值以适当的方式。

enter image description here

代码如下:

plt.imshow(correlation_matrix,cmap='hot',interpolation='nearest')

最佳答案

另一种选择是使用 seaborn 中的 heatmap 函数来绘制协方差。此示例使用 R 中 ISLR 包中的 Auto 数据集(与您显示的示例相同)。

import pandas.rpy.common as com
import seaborn as sns
%matplotlib inline

# load the R package ISLR
infert = com.importr("ISLR")

# load the Auto dataset
auto_df = com.load_data('Auto')

# calculate the correlation matrix
corr = auto_df.corr()

# plot the heatmap
sns.heatmap(corr,
xticklabels=corr.columns,
yticklabels=corr.columns)

enter image description here

如果你想更花哨,你可以使用Pandas Style ,例如:

cmap = cmap=sns.diverging_palette(5, 250, as_cmap=True)

def magnify():
return [dict(selector="th",
props=[("font-size", "7pt")]),
dict(selector="td",
props=[('padding', "0em 0em")]),
dict(selector="th:hover",
props=[("font-size", "12pt")]),
dict(selector="tr:hover td:hover",
props=[('max-width', '200px'),
('font-size', '12pt')])
]

corr.style.background_gradient(cmap, axis=1)\
.set_properties(**{'max-width': '80px', 'font-size': '10pt'})\
.set_caption("Hover to magify")\
.set_precision(2)\
.set_table_styles(magnify())

enter image description here

关于python - 相关热图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39409866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com