热图 Cbar 调整颜色渐变
Heatmap Cbar Adjust Color Gradient
我尝试调整我的 cbar 颜色,但很难做到:
当我使用时:Center=None
我有以下栏:
当我使用 Center=0
时,我有以下栏:
但这不是我的例外:我的目标是让红色从零开始并且越来越红,值小于 0。
所以酒吧应该看起来像这样的东西:
所以像这样它会更具可读性:红色负 - 绿色正
(越红越负-越绿越正)
下面是我的代码行:
ax = sns.heatmap(result, linewidth=0.1,cmap="RdYlGn",
cbar_kws=dict(ticks= [result.min()/2,.0,result.max()/2]),
center=None,vmin=result.min(),vmax=result.max(),robust=True,fmt="f")
似乎 vmin
和 vmax
没有正常工作
您似乎想要一个 TwoSlopeNorm
以不同方式压缩两个部分。 (默认使用对称着色。)
from matplotlib import pyplot as plt
from matplotlib.colors import TwoSlopeNorm
import seaborn as sns
norm = TwoSlopeNorm(vcenter=0)
result = np.random.uniform(-0.01, 0.1, (10, 10))
ax = sns.heatmap(result, linewidth=0.1, cmap="RdYlGn", norm=norm,
cbar_kws=dict(ticks=[result.min() / 2, .0, result.max() / 2]),
robust=True, fmt="f")
plt.show()
我尝试调整我的 cbar 颜色,但很难做到:
当我使用时:Center=None
我有以下栏:
当我使用 Center=0
时,我有以下栏:
但这不是我的例外:我的目标是让红色从零开始并且越来越红,值小于 0。
所以酒吧应该看起来像这样的东西:
所以像这样它会更具可读性:红色负 - 绿色正
(越红越负-越绿越正)
下面是我的代码行:
ax = sns.heatmap(result, linewidth=0.1,cmap="RdYlGn",
cbar_kws=dict(ticks= [result.min()/2,.0,result.max()/2]),
center=None,vmin=result.min(),vmax=result.max(),robust=True,fmt="f")
似乎 vmin
和 vmax
没有正常工作
您似乎想要一个 TwoSlopeNorm
以不同方式压缩两个部分。 (默认使用对称着色。)
from matplotlib import pyplot as plt
from matplotlib.colors import TwoSlopeNorm
import seaborn as sns
norm = TwoSlopeNorm(vcenter=0)
result = np.random.uniform(-0.01, 0.1, (10, 10))
ax = sns.heatmap(result, linewidth=0.1, cmap="RdYlGn", norm=norm,
cbar_kws=dict(ticks=[result.min() / 2, .0, result.max() / 2]),
robust=True, fmt="f")
plt.show()