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

Colors 如何反转seaborn热图色条的颜色,colors,heatmap,seaborn,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) 但

我使用热图来可视化混乱矩阵。我喜欢标准颜色,但我希望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)
但我想保留这些标准的。这是我的代码和我得到的图像

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

您是否尝试反转颜色贴图

sns.cubehelix_palette(as_cmap=True, reverse=True)

默认的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)

要扩展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()

我们现在只需将\u r放在最后,就可以快速实现反转颜色

例如:对于viridis=>viridis\u r

sns.heatmap(corr_matrix, annot=True, cmap='viridis_r');

是的,但是,正如我在问题中所写的,我想要的是相同的标准颜色,而不是cubehelix_调色板中的颜色(颜色为紫色,没有橙色),我当时可能误解了这个问题。也许另一个答案是你在寻找什么?对我来说,我必须使用
plt.cm
,因为
sns
没有
cm
模块。@AmirhosImani你在使用什么版本的seaborn?它似乎仍然是当前版本的一部分(请参阅)