翻转 Seaborn 热图的颜色条

时间:2021-02-02 14:23:09

标签: seaborn heatmap

我正在尝试在 Seaborn 中翻转我的热图的颜色栏。 这是目前的样子。

enter image description here

我想要的是从顶部开始的颜色条 使用值 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 是我用来绘制此热图的数据。

1 个答案:

答案 0 :(得分:2)

您只需在包含颜色条的轴上调用 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 创建的轴来绘制颜色条。

enter image description here