Python 如何使用文本标签自定义Seaborn热图中的颜色栏

Python 如何使用文本标签自定义Seaborn热图中的颜色栏,python,matplotlib,legend,heatmap,colorbar,Python,Matplotlib,Legend,Heatmap,Colorbar,我想为热图创建一个颜色条图例,它不是数字而是文本 例如,假设我将展示在一些城市之间的人口分布。但在colorbar中,我希望有三个文本—低总体、中总体和高总体,而不是显示总体范围的数字 这一点都不专业,但我的代码解决了这个问题: ax = sns.heatmap(Matrix_of_Population, cmap='viridis', cbar_kws={'label': 'Low Medium high'}) 但是,除了这些文本之外,人口数量也是如此。您可以在颜色栏中指定特

我想为热图创建一个颜色条图例,它不是数字而是文本

例如,假设我将展示在一些城市之间的人口分布。但在colorbar中,我希望有三个文本—低总体、中总体和高总体,而不是显示总体范围的数字

这一点都不专业,但我的代码解决了这个问题:

ax = sns.heatmap(Matrix_of_Population, cmap='viridis', cbar_kws={'label': 'Low      Medium    high'})

但是,除了这些文本之外,人口数量也是如此。

您可以在颜色栏中指定特定记号的标签:

import seaborn as sns
import numpy as np 


a = np.random.randn(20,20)
ax = sns.heatmap(a, cmap='viridis')
c_bar = ax.collections[0].colorbar
c_bar.set_ticks([-2, 0, 2])
c_bar.set_ticklabels(['Low', 'Medium', 'High'])