python – 相关热图

我想用热图表示相关矩阵. R中有一个名为correlogram的东西,但我不认为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)的地图,或者类似的东西,但这里低于0的值没有以适当的方式呈现.

python  – 相关热图

这是代码:

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

解决方法:

另一种方法是使用seaborn中的热图函数来绘制协方差.此示例使用R中ISLR程序包中的自动数据集(与您显示的示例中的相同).

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)

python  – 相关热图

如果你想更加喜欢,你可以使用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())

python  – 相关热图

上一篇:python – 使用.corr获取两列之间的相关性


下一篇:使用mathdotnet c#的互相关