我使用热图来显示混淆矩阵。我喜欢标准颜色,但我希望浅橙色为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)
答案 0 :(得分:15)
默认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)
答案 1 :(得分:5)
要扩展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()
答案 2 :(得分:1)
您是否尝试反转色彩图?
sns.cubehelix_palette(as_cmap=True, reverse=True)
答案 3 :(得分:0)
我们现在只需将 _r 放在最后即可快速实现反色。
例如:对于viridis => viridis_r
sns.heatmap(corr_matrix, annot=True, cmap='viridis_r');