我在网上阅读了其他文章,这些文章讨论了如何在seaborn heatmap中设置自定义刻度标签,但找不到有关自定义颜色间隔的内容。例如,如果我想在0 <= val <0.2时返回红色,在0.2 <= val <0.4时返回绿色,而在0.4 <= val <= 1时返回蓝色,那么最好的方法是什么?
我尝试过的事情:
myColors = ((0.8, 0.0, 0.0, 1.0), (0.0, 0.8, 0.0, 1.0), (0.0, 0.0, 0.8, 1.0))
cmap = LinearSegmentedColormap.from_list('Custom', myColors, len(myColors))
fig = plt.figure(figsize=(15,15))
ax = sns.heatmap(param_matrix, cmap=cmap, linewidths=0.05, xticklabels=2, yticklabels=2)
colorbar = ax.collections[0].colorbar
colorbar.set_ticks([0, 0.2, 0.4, 1])
colorbar.set_ticklabels(['1st_interval', '2nd_interval', '3rd_interval'])
_, labels = plt.yticks()
plt.setp(labels, rotation=0)
plt.show()