我想在seaborn中绘制一个热力图。我的代码如下:
plt.rcParams['font.size'] = 13
plt.rcParams['font.weight'] = 'bold'
my_dpi=96
fig, ax = plt.subplots(figsize=(800/my_dpi, 600/my_dpi), dpi=my_dpi, facecolor='black')
rdgn = sns.diverging_palette(h_neg=130, h_pos=10, s=99, l=55, sep=3)
sns.heatmap(df, cmap=rdgn, center=0.00, annot=True, fmt ='.2%', linewidths=1.3, linecolor='black', cbar=False, ax=ax)
plt.savefig('./image/image.png', dpi=96, facecolor='black')
结果如下:
我想把值为0的设为白色,大于0的值设为红色,小于0的值设为绿色。但是热力图中心无效。
顺便问一下,如何设置不对称的颜色。因为我的数据中最小值为-0.34,最大值为1.31。我想把0设为白色,-0.34设为最绿,1.31设为最红。
DivergingNorm
已更名为TwoSlopeNorm
。详情请参见https://matplotlib.org/stable/api/prev_api_changes/api_changes_3.2.0.html?highlight=divergingnorm#divergingnorm-renamed-to-twoslopenorm - John