翻转 Seaborn 热图的颜色条

Flip over colorbar of Seaborn heatmap

我想在 Seaborn 中翻转我的热图的颜色条。 这是它目前的样子。

我想要的是从顶部开始的颜色条 值为 0(绿色),值为 8(红色)到底部。 请注意,Y轴点是根据平均值排序的 从最小值(顶部)到最大值(底部),我想保持这种状态。 知道是否可以这样做吗?

这是当前代码的示例:

cmap1 = mcolors.LinearSegmentedColormap.from_list("n",['#00FF00','#12FF00','#24FF00','#35FF00','#47FF00','#58FF00','#6AFF00','#7CFF00','#8DFF00','#9FFF00','#B0FF00','#C2FF00','#D4FF00','#E5FF00','#F7FF00','#FFF600','#FFE400','#FFD300','#FFC100','#FFAF00','#FF9E00','#FF8C00','#FF7B00','#FF6900','#FF5700','#FF4600','#FF3400','#FF2300','#FF1100','#FF0000',])

plt.figure(figsize=(22, 12))
df = pd.DataFrame( AgainReorderindSortedEDPList, index=sortedProgrammingLanguagesBasedOnAverage, columns=sortedTasksBasedOnAverage)
mask = df.isnull()
sns.heatmap(df, annot=True, fmt="g", cmap=cmap1, mask=mask)
plt.yticks(fontsize = 12) 
plt.yticks(rotation=0)
plt.xticks(fontsize = 11) 
plt.ylabel('Programming Languages', size = 15)
plt.xlabel('Programming Tasks', size = 15)
plt.xticks(rotation=-45)
plt.show()

AgainReorderindSortedEDPList、sortedProgrammingLanguagesBasedOnAveragesortedTasksBasedOnAverage 是我用来绘制此热图的数据。

您只需在包含颜色条的轴上调用 invert_yaxis()。如何做到这一点在一定程度上取决于您创建热图的方式,但遗憾的是您尚未提供代码。

这是最简单的例子:

uniform_data = np.random.rand(10, 12)
ax = sns.heatmap(uniform_data)
plt.gcf().axes[1].invert_yaxis()

plt.gcf() 获取对当前图形的引用。 Figure.axes是图中的坐标轴列表。 axes[1] 是第二个轴,它应该对应于 heatmap 创建的用于绘制颜色条的轴。