python画相关性可视化图_Python可视化16matplotlib&seborn-相关性热图(correlation heatmap)...

本文将了解到什么?

0、成品图展示

1、数据准备

2、seaborn.heatmap绘制correlation heatmap

默认参数绘制correlation heatmap

vmax设置颜色深浅

cmp参数变换colormap

annot、fmt、annot_kws设置格子中文本

mask设置部分数据显示

3、seaborn.clustermap绘制correlation clustermap

0、成品图展示

普通相关性heatmap

397cd431b606

image

聚类相关性heatmap

397cd431b606

image

1、数据准备

关键一步,使用pandas的corr函数生成相关矩阵。

from string import ascii_letters

import numpy as np

import pandas as pd

import seaborn as sns

import matplotlib.pyplot as plt

import palettable

# 生成随机数

rs = np.random.RandomState(33)#类似np.random.seed,即每次括号中的种子33不变,每次可获得相同的随机数

d = pd.DataFrame(data=rs.normal(size=(100, 26)),#normal生成高斯分布的概率密度随机数,需要在变量rs下使用

columns=list(ascii_letters[26:]))

# corr函数计算相关性矩阵(correlation matrix)

dcorr = d.corr(method='pearson')#默认为'pearson'检验,可选'kendall','spearman'

简单看下原始数据集,如下:可以简单理解为一个具有26个变量(A-Z),每个变量具有100个平行的矩阵。

397cd431b606

image

经过corr函数变换后 ,变成26x26的方形矩阵。

397cd431b606

image

2、seaborn.heatmap绘制correlation heatmap

默认参数绘制correlation heatmap

plt.figure(figsize=(11, 9),dpi=100)

sns.heatmap(data=dcorr,

)

397cd431b606

image

vmax设置颜色深浅

plt.figure(figsize=(11, 9),dpi=100)

sns.heatmap(data=dcorr,

vmax=0.3, #上图颜色太深,不美观,让整体颜色变浅点

)

397cd431b606

image

cmp参数变换colormap

关于colormap可参考:

plt.figure(figsize=(11, 9),dpi=100)

sns.heatmap(data=dcorr,

vmax=0.3,

cmap=palettable.cmocean.diverging.Curl_10.mpl_colors, #换个colormap

)

397cd431b606

image

annot、fmt、annot_kws设置格子中文本

plt.figure(figsize=(11, 9),dpi=100)

sns.heatmap(data=dcorr,

vmax=0.3,

cmap=palettable.cmocean.diverging.Curl_10.mpl_colors,

annot=True,#图中数字文本显示

fmt=".2f",#格式化输出图中数字,即保留小数位数等

annot_kws={'size':8,'weight':'normal', 'color':'#253D24'},#数字属性设置,例如字号、磅值、颜色

)

397cd431b606

image

mask设置部分数据显示

plt.figure(figsize=(11, 9),dpi=100)

sns.heatmap(data=dcorr,

vmax=0.3,

cmap=palettable.cmocean.diverging.Curl_10.mpl_colors,

annot=True,

fmt=".2f",

annot_kws={'size':8,'weight':'normal', 'color':'#253D24'},

mask=np.triu(np.ones_like(dcorr,dtype=np.bool))#显示对脚线下面部分图

)

397cd431b606

image

square、linewidths、 cbar_kws设置方格外框、图例设置

plt.figure(figsize=(11, 9),dpi=100)

sns.heatmap(data=dcorr,

vmax=0.3,

cmap=palettable.cmocean.diverging.Curl_10.mpl_colors,

annot=True,

fmt=".2f",

annot_kws={'size':8,'weight':'normal', 'color':'#253D24'},

mask=np.triu(np.ones_like(dcorr,dtype=np.bool)),#显示对脚线下面部分图

square=True, linewidths=.5,#每个方格外框显示,外框宽度设置

cbar_kws={"shrink": .5}

)

397cd431b606

image

3、seaborn.clustermap绘制correlation clustermap

plt.figure(figsize=(11, 9),dpi=100)

sns.clustermap(data=dcorr,

vmax=0.3,

cmap=palettable.cmocean.diverging.Curl_10.mpl_colors,

linewidths=.75,

)

397cd431b606

image注意左上方分类条

row_c = dict(zip(list(ascii_letters[26:]), plt.get_cmap('RdPu')(np.linspace(0, 1, 26))))

index_c = dict(zip(list(ascii_letters[26:]), plt.get_cmap('RdPu')(np.linspace(0, 1, 26))))

sns.set(style="ticks")

plt.figure(figsize=(13, 13))

sns.clustermap(data=dcorr,

vmax=0.3,

cmap=palettable.cmocean.diverging.Curl_10.mpl_colors,

linewidths=.75,

row_colors=pd.Series(dcorr.columns.get_level_values(None), index=dcorr.columns).map(row_c), #行方向聚类用颜色区分不同类

col_colors=pd.Series(dcorr.columns.get_level_values(None), index=dcorr.columns).map(index_c),

dendrogram_ratio=0.15,# 图放大缩小

)

397cd431b606

image

相关性热图(correlation heatmap& correlation clustermap)是heatmap和clustermap的变种,更多参数设置请戳:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值