前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python (Seaborn) 实现heatmap

python (Seaborn) 实现heatmap

作者头像
生信编程日常
发布2020-04-01 16:05:24
9060
发布2020-04-01 16:05:24
举报

对于习惯使用python的朋友,可以考虑用seaborn库画图,方便高效。

对于热图,可以考虑使用seaborn.clustermap来做。其参数如下:

seaborn.clustermap(data, pivot_kws=None, method='average', metric='euclidean', z_score=None, standard_scale=None, figsize=(10, 10), cbar_kws=None, row_cluster=True, col_cluster=True, row_linkage=None, col_linkage=None, row_colors=None, col_colors=None, mask=None, dendrogram_ratio=0.2, colors_ratio=0.03, cbar_pos=(0.02, 0.8, 0.05, 0.18), tree_kws=None, **kwargs)

其中data是个2D array,且不能含有NA (这个与R中的heatmap.2等不同);

(此处用的seaborn版本是0.10.0)

代码语言:javascript
复制
import seaborn as sns
sns.set(color_codes=True)
iris = sns.load_dataset("iris")
species = iris.pop("species")
g = sns.clustermap(iris)

heatmap1

修改大小/排布等:

代码语言:javascript
复制
g = sns.clustermap(iris,
                   figsize=(7, 5),
                   row_cluster=False,
                   dendrogram_ratio=(0.1, 0.2),
                   cbar_pos=(0, 0.2, 0.03, 0.4))

heatmap2

加上color bar:

代码语言:javascript
复制
lut = dict(zip(species.unique(), "rbg"))
row_colors = species.map(lut)
g = sns.clustermap(iris, row_colors=row_colors)

heatmap3

修改颜色和颜色范围,其中cmap参数可以修改颜色,有很多可选,可以参考这个帖子https://blog.csdn.net/ztf312/article/details/102474190

代码语言:javascript
复制
g = sns.clustermap(iris, cmap="jet", vmin=0, vmax=10)

heatmap4

修改距离计算方法,默认为欧式距离:

代码语言:javascript
复制
g = sns.clustermap(iris, metric="correlation")

heatmap5

对行进行标准化,0是行,1是列:

代码语言:javascript
复制
g = sns.clustermap(iris, z_score=0, cmap="vlag")

heatmap6

欢迎关注~

生信编程日常

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档