python - 将 set_over 颜色添加到热图中的 cbar
问题描述
我在 seaborn 中创建了 hetmap,并设置了 vmin、vmax 并设置了超值,因此如果 heatmap 中单元格的值超过 0.05,它会获得银色。过去,我设法创建了 cbar,它还显示了其中的 set_over 颜色,如下所示:
问题是现在我不记得我过去是如何做到的,并且在文档中找不到任何解释。所以我正在寻找将这个“灰色三角形帽子”添加到我的 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')
我的最终目标:能够将这个“灰色三角帽”添加到我的 cbar 中,设置为 set_over 值(大于 0.05)
解决方案
您还可以为颜色栏关键字制作一个 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()
推荐阅读
- firebase - 如何 Firebase Firestore 实时更新只添加新数据来收集?
- typescript - 传递给函数时,Typescript缩小对象中的键
- reactjs - 没有 create-react-app 的 React 应用程序中的绝对导入
- c - 获取主题备用名称 OpenSSL
- vb.net - 我想在几个句子之间找到出现在任何地方的常用词
- kubernetes - 如何使用 Terraform 配置 AWS EKS 自动扩缩器?
- winapi - ID2D1RenderTarget::GetSize 返回物理像素而不是 DIP
- django - Django ValueError:缺少静态文件清单条目,但清单似乎显示了该条目
- spring-data-mongodb - 春季数据 - MongoDB - java.util.deque
- python-3.x - 单击后更改或删除链接到按钮的命令