将自定义刻度标签均匀分布在颜色栏上

问题描述 投票:0回答:1

我正在尝试使用pyplot向我的热图添加自定义颜色栏。我的代码如下所示:

c_map = mpl.colors.ListedColormap(['#c7e9b4','#7fcdbb','#ffffff','#41b6c4','#225ea8','#253494'])
sm = plt.cm.ScalarMappable(cmap=c_map)
cbar = plt.colorbar(sm, ticks=np.arange(6), label='Change in user population')
cbar.ax.set_yticklabels(['<=-6', '<= -1', '0', '<= 3', '<= 6', '7>='])

当前会产生以下颜色条:Wrong colorbar

从图像中可以看出,在条形图的底部和顶部仅显示了六个刻度标签中的两个。但是,按照其他人使用的方法,我希望ticks=np.arange(6)在将刻度标签更改为指定的字符串值之前,将六个标签均匀地分布在颜色栏上。

我正在寻找一种解决问题的快捷方法,因为这是我唯一需要制作的视觉地图。我已经四处寻找了好几个小时,但仍未成功解决这个问题,因此请帮助这位初学者。

我正在尝试使用pyplot向我的热图添加自定义颜色栏。我的代码如下所示:c_map = mpl.colors.ListedColormap(['#c7e9b4','#7fcdbb','#ffffff','#41b6c4','#225ea8','#253494'])sm =。 ..

python matplotlib colorbar colormap
1个回答
0
投票

刻度轴位于0(底部)到1(顶部)之间。将空间平均分为6个部分,将在每个颜色区域的底部标记。加上一半将很好地放在中心。因此,ticks=np.linspace(0,1,6,endpoint=False) + 1/12。或等效地,ticks=(np.arange(6)+1/2)/6

© www.soinside.com 2019 - 2024. All rights reserved.