【问题标题】:How I customize each color in cmap with difference interval values in heatmap seaborn subplot Python 3.6.0?如何使用热图 seaborn 子图 Python 3.6.0 中的不同间隔值自定义 cmap 中的每种颜色?
【发布时间】:2020-02-10 03:11:24
【问题描述】:

我在 Python 3.6.0 中有一个带有 seaborn 热图的子图

import seaborn as sb
import matplotlib.pyplot as plt
data = [[1, 1.5, 6],
        [4, 1.6, 8],
        [0, 1.7, 10]
        ]

cmap = ["#0416FF", "#0094FF", "#00DAFF", "#006600", "#00A305"]
heat_map = sb.heatmap(data, cmap=cmap)
plt.show()

但我想用等价范围数据值自定义 cbar 中的每种颜色,如下所示:当数据值从 0 到 1 时,单元格将着色 #0416FF,数据值从 1 到 5,单元格将着色 #0094FF,数据值从 5到 8 单元格将着色 #00A305... 这意味着 cbar 中的每种颜色将等同于差异间隔数据值。我该怎么做?

【问题讨论】:

    标签: python-3.x colors seaborn heatmap subplot


    【解决方案1】:

    一种方法是使用深蓝色一次、浅蓝色 4 次和绿色 3 次创建颜色列表。并将vmin=0vmax=8 设置为将所有值限制在所需范围内。

    下面的代码就是这样做的。这些值以文本形式添加,以便轻松检查正在发生的事情。

    import seaborn as sns
    import matplotlib.pyplot as plt
    
    data = [[1, 1.5, 6],
            [4, 1.6, 8],
            [0, 1.7, 10]]
    colors = ["#0416FF", *(["#0094FF"]*4), *(["#00A305"]*3)]
    heat_map = sns.heatmap(data, cmap=colors, vmin=0, vmax=8)
    ax = plt.gca()
    for i in range(len(data)):
        for j in range(len(data[0])):
            ax.text(j+0.5, i+0.5, data[i][j], color='gold', ha='center', va='center', fontsize=20)
    

    【讨论】:

      猜你喜欢
      • 2020-10-21
      • 2020-06-21
      • 1970-01-01
      • 2021-09-16
      • 2018-07-13
      • 1970-01-01
      • 2020-06-07
      • 2021-07-06
      • 1970-01-01
      相关资源
      最近更新 更多