【Python】heatmap代码模版~

本文介绍使用Python详细实现热力图(heatmap),包含55个代码模版,节选自👉原创Python可视化教程:530张图形+8000行代码+详细代码注释+后续免费更新+学习交流群,部分目录,

4bb4e9f919473e498a25afdc3164f01f.gif


普通heatmap

普通热图严格来说不属于热图,而是颜色图(Color Image)。其生成过程不涉及数据转换计算,而是将数据简单映射到一个网格矩阵中,然后根据预先指定的颜色序列为网格矩阵中的数据赋予不同的颜色,从而利用颜色深浅来表示数据的大小。这种普通热图借助于人眼对颜色的敏感度,可以快速发现统计特征(如颜色深浅与数据大小的关系),相比直接观察数据,具有显著优势。

例如,普通heatmap-注释文本格式化,

plt.figure(dpi=120, figsize=(7, 6))

sns.set(font_scale=0.8, rc={"font.family": "Songti SC"})
sns.heatmap(
    data=gene,
    annot=True,
    fmt=".2f",  #设置每个格子中注释文本的格式,此处保留两位小数
    cmap=sns.diverging_palette(255, 5, as_cmap=True),
)
plt.xticks(rotation=45)
77c6c4722eed3a1bfd61aaaf3beab1c5.png

例如,普通heatmap使用不同配色,

for ax, cmap, title in zip(axes.ravel(), cmaps, titles):
    sns.heatmap(
        data=gene,
        annot=True,
        cmap=cmap,  # 设置colormap,更多参考上文章节“5.3.1 构建颜色”
        ax=ax)
    ax.set_title(title)
    ax.tick_params(axis='x', rotation=45)

plt.tight_layout()
plt.show()
1963eedbf9cb621a40fcfffed35c8a5e.png

聚类热图

聚类热图(hierarchically-clustered heatmap)是在前文“11.1 普通热图”的基础上,通过应用聚类算法(见下文章节“11.2.6 聚类热图-聚类算法”)对行和列进行分组,在行列边界区域添加了聚类的谱系图。通过聚类热图,既可以观察数据矩阵的分布情况,也可以分析聚类结果。

例如,聚类热图-垂直+水平方向聚类,注意左侧和上侧同时添加了聚类树(dendrogram),

sns.clustermap(
    data=healthexp[healthexp.洲名称.isin(['Europe'])],
    pivot_kws={
        'index': ['洲名称', '国家名称'],
        'columns': '年份',
        'values': '预期寿命'
    },
    row_cluster=True,  #水平方向聚类
    col_cluster=True,  #垂直方向聚类
    annot=True,
    fmt=".1f",
    cmap=sns.diverging_palette(255, 5, as_cmap=True),
).fig.set_dpi(150)
3074c5e4e61b03f896efa8d8e66f31be.png

相关性热图

相关性热图(Correlation Heatmap)用于展示数据集矩形矩阵中行列变量之间的相关性程度,每个格子中的颜色则表示对应变量相关性程度高低。

例如,相关性热图-下对角相关矩阵,

plt.figure(dpi=120, figsize=(6, 4))
sns.set_theme(style="white", font_scale=0.8, rc={"font.family": "Songti SC"})

sns.heatmap(
    data=gene.corr(),
    mask=np.triu(np.ones_like(gene.corr())),  #绘制下对角相关矩阵
    annot=True,
    fmt=".2f",
    cmap=sns.diverging_palette(255, 5, as_cmap=True),
)
plt.xticks(rotation=90)
plt.yticks(rotation=0)
plt.show()
def2079893d83a14ddd14f46e98dbe7a.png

例如,相关性热图-聚类,

sns.set(rc={"font.family": "Songti SC"})

sns.clustermap(  #sns.clustermap实现聚类
    data=gene.corr(),
    dendrogram_ratio=(
        0.1,  #行聚类树的宽度
        0.1  #列聚类树的宽度
    ),
    figsize=(7, 7),
    annot=True,
    fmt=".2f",
    cmap=sns.diverging_palette(255, 5, as_cmap=True),
)
plt.show()
3fe0693b3a6a5a552237b0d7410190c9.png
 
 
 
 
-END-
 
 

b75c9c932c20a267279fe578ec1beba6.jpeg

 
 
 
 
 
 
 
 
 
 
 
 
往期精彩回顾




适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑
  • 交流群

欢迎加入机器学习爱好者微信群一起和同行交流,目前有机器学习交流群、博士群、博士申报交流、CV、NLP等微信群,请扫描下面的微信号加群,备注:”昵称-学校/公司-研究方向“,例如:”张小明-浙大-CV“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~(也可以加入机器学习交流qq群772479961)

f0bdf031d86584533d163ea5973a7758.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值