美文网首页生物信息学与算法呆鸟的Python数据分析
(建议收藏)Python可视化16matplotlib&sebo

(建议收藏)Python可视化16matplotlib&sebo

作者: pythonic生物人 | 来源:发表于2020-08-08 09:40 被阅读0次

本文将了解到什么?

0、成品图展示
1、数据准备
2、seaborn.heatmap绘制correlation heatmap
默认参数绘制correlation heatmap
vmax设置颜色深浅 
cmp参数变换colormap 
annot、fmt、annot_kws设置格子中文本
mask设置部分数据显示

3、seaborn.clustermap绘制correlation clustermap 

0、成品图展示

普通相关性heatmap

image

聚类相关性heatmap

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个平行的矩阵。

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

2、seaborn.heatmap绘制correlation heatmap

默认参数绘制correlation heatmap

plt.figure(figsize=(11, 9),dpi=100)
sns.heatmap(data=dcorr,
           )
image

vmax设置颜色深浅

plt.figure(figsize=(11, 9),dpi=100)
sns.heatmap(data=dcorr,
            vmax=0.3, #上图颜色太深,不美观,让整体颜色变浅点           
           )
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          
           )
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'},#数字属性设置,例如字号、磅值、颜色            
           )
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))#显示对脚线下面部分图
           )
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}
           )
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,       
                              
              )
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,# 图放大缩小
              )
image

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

欢迎微信搜索关注:pythonic生物人

随缘关

相关文章

网友评论

    本文标题:(建议收藏)Python可视化16matplotlib&sebo

    本文链接:https://www.haomeiwen.com/subject/iwwqdktx.html