将 set_over 颜色添加到热图中的 cbar
Add the set_over color to cbar in heatmap
我在 seaborn 中创建了 hetmap,我设置了 vmin、vmax 并设置了 over value,所以如果 heatmap 中单元格的值超过 0.05,它会变成银色。
过去,我设法创建了在其中还显示 set_over 颜色的 cbar,如下所示:
问题是现在我不记得我过去是怎么做的,也找不到文档中的任何解释。所以我正在寻找将这个“灰色三角帽”添加到我的 cbar 的方法。
这是我现在所做的:
green = sns.light_palette("green", reverse=True, as_cmap=True)
green.set_over('silver')
# common settings: linewidths for grid lines, hide colorbar, set square aspect
kwargs = dict(linewidths=1, cbar=True, square=True)
#I removed here the part of the code that uses mask
g=sns.heatmap(df_fruits, mask=mask, cmap=cmap, ax=ax,vmin=0,vmax=0.05, **kwargs)
g.set_facecolor('xkcd:silver')
我的最终目标:能够根据 set_over 值(大于 0.05)[=14= 将这个“灰色三角帽”添加到我的 cbar ]
你也可以为colorbar关键字做一个dict并设置extend='max'
。
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
np.random.seed(123)
green = sns.light_palette("green", reverse=True, as_cmap=True)
green.set_over('silver')
cbar_kws = dict(extend='max')
kwargs = dict(linewidths=1, square=True, cbar=True, cbar_kws=cbar_kws)
ax = sns.heatmap(np.random.rand(10, 10) / 10, cmap=green, vmin=0, vmax=0.05, **kwargs)
ax.set_facecolor('xkcd:silver')
plt.tight_layout()
plt.show()
我在 seaborn 中创建了 hetmap,我设置了 vmin、vmax 并设置了 over value,所以如果 heatmap 中单元格的值超过 0.05,它会变成银色。 过去,我设法创建了在其中还显示 set_over 颜色的 cbar,如下所示:
问题是现在我不记得我过去是怎么做的,也找不到文档中的任何解释。所以我正在寻找将这个“灰色三角帽”添加到我的 cbar 的方法。 这是我现在所做的:
green = sns.light_palette("green", reverse=True, as_cmap=True)
green.set_over('silver')
# common settings: linewidths for grid lines, hide colorbar, set square aspect
kwargs = dict(linewidths=1, cbar=True, square=True)
#I removed here the part of the code that uses mask
g=sns.heatmap(df_fruits, mask=mask, cmap=cmap, ax=ax,vmin=0,vmax=0.05, **kwargs)
g.set_facecolor('xkcd:silver')
我的最终目标:能够根据 set_over 值(大于 0.05)[=14= 将这个“灰色三角帽”添加到我的 cbar ]
你也可以为colorbar关键字做一个dict并设置extend='max'
。
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
np.random.seed(123)
green = sns.light_palette("green", reverse=True, as_cmap=True)
green.set_over('silver')
cbar_kws = dict(extend='max')
kwargs = dict(linewidths=1, square=True, cbar=True, cbar_kws=cbar_kws)
ax = sns.heatmap(np.random.rand(10, 10) / 10, cmap=green, vmin=0, vmax=0.05, **kwargs)
ax.set_facecolor('xkcd:silver')
plt.tight_layout()
plt.show()