如何反转seaborn热图彩色条的颜色

Fed*_*Fed 17 colors heatmap seaborn

我使用热图来显示混淆矩阵.我喜欢标准颜色,但我希望浅橙色为0,深紫色为最高值.

我设法只使用另一组颜色(从浅到深的紫罗兰色),设置:

colormap = sns.cubehelix_palette(as_cmap=True)
ax = sns.heatmap(cm_prob, annot=False, fmt=".3f", xticklabels=print_categories, yticklabels=print_categories, vmin=-0.05, cmap=colormap)
Run Code Online (Sandbox Code Playgroud)

但我想保留这些标准的.这是我的代码和我得到的图像.

ax = sns.heatmap(cm_prob, annot=False, fmt=".3f", xticklabels=print_categories, yticklabels=print_categories, vmin=-0.05)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Ben*_*Ben 24

默认的cmap是sns.cm.rocket.要反转它,请将cmap设置为sns.cm.rocket_r

使用你的代码:

cmap = sns.cm.rocket_r

ax = sns.heatmap(cm_prob,
                 annot=False,
                 fmt=".3f",
                 xticklabels=print_categories,
                 yticklabels=print_categories,
                 vmin=-0.05,
                 cmap = cmap)
Run Code Online (Sandbox Code Playgroud)


ben*_*nbo 8

要扩展Ben的答案,您可以使用大多数(如果没有的话)色彩映射表执行此操作。

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
X = np.random.random((4, 4))
sns.heatmap(X,cmap="Blues")
plt.show()
sns.heatmap(X,cmap="Blues_r")
plt.show()
sns.heatmap(X,cmap="YlGnBu")
plt.show()
sns.heatmap(X,cmap="YlGnBu_r")
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


小智 5

  • 仅添加cmap="rocket_r"sns.heatmap
    • cmap="rocket":是热图的默认调色板
    • 添加_r:反转调色板的颜色
ax = sns.heatmap(cm_prob, annot=False, fmt=".3f", xticklabels=print_categories, yticklabels=print_categories, vmin=-0.05,cmap="rocket_r")
Run Code Online (Sandbox Code Playgroud)