热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SeabornHeatMap-如何在多个不同的数据集中设置颜色分级

如何解决《SeabornHeatMap-如何在多个不同的数据集中设置颜色分级》经验,为你挑选了1个好方法。

所以我需要在seaborn中创建一些具有不同数据的热图.有些范围从0-100到一些+100到-100.我需要做的是在所有图表中保持颜色分级相同.因此,例如,我希望0以下的任何东西能够稳定地从深蓝色变为淡蓝色,而任何高于0的东西都会变得越来越暗,例如下面可怕的示例图表.

在此输入图像描述

我需要的是下面没有显示的是流畅的颜色过渡,因为目前我还不完全确定seaborn是如何工作的,因为我刚刚列出了许多颜色 - 下面的代码

sns.heatmap(df.T, cmap=ListedColormap(['#000066','#000099','#0000cc','#1a1aff','#6666ff','#b3b3ff','#ffff00','#ffcccc','#ff9999','#ff6666','#ff3333','#ff0000']), annot=False)

谢谢你的任何建议.



1> ImportanceOf..:

要指定颜色标准化,您可以使用Normalize实例,plt.Normalize(vmin, vmax)并使用norm关键字(路由到底层pcolormesh)将其提供给热图.

要获得颜色逐渐变化的色彩映射,您可以使用静态LinearSegmentedColormap.from_list方法并为其提供颜色列表.

import numpy as np; np.random.seed(0)
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors

x1 = np.random.randint(0,100,size=(12,8))
x2 = np.random.randint(-100,100,size=(12,8))

fig, axes = plt.subplots(ncols=2)

cmap = mcolors.LinearSegmentedColormap.from_list("n",['#000066','#000099','#0000cc','#1a1aff','#6666ff','#b3b3ff',
                       '#ffff00','#ffcccc','#ff9999','#ff6666','#ff3333','#ff0000'])
norm = plt.Normalize(-100,100)

sns.heatmap(x1, ax=axes[0], cmap=cmap, norm=norm)
sns.heatmap(x2, ax=axes[1], cmap=cmap, norm=norm)

plt.show()

在此输入图像描述


推荐阅读
author-avatar
cy45vsf
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有