如何将 seaborn 调色板转换为 cmap?

How can I convert a seaborn color palette into a cmap?

我想将 seaborn 中的 continuous 发散调色板 "RdBu_r"(或者实际上,任何预定义的调色板)转换为 matplotlib 颜色图。

这是我最接近的,但它创建了一个离散的颜色图,而我想要一个连续的图:

import seaborn as sns
from matplotlib.colors import ListedColormap

palette = sns.color_palette("RdBu_r", n=7) # could make n = 100 as a quick fix
cmap = ListedColormap(colors=palette)
cmap.set_bad(color='black', alpha=0.5)
sns.heatmap(cmap=cmap) 

最终,我尝试使用 "RdBu_r" 调色板创建一个 seaborn 热图,空值填充为黑色方块,这就是为什么我尝试使用 set_bad 创建一个 cmap (color='black'),而不是仅仅将 "RdBu_r" 传入 sns.heatmap 的 cmap 参数。

谢谢大家。

"RdBu_r" 是一个 matplotlib 颜色图。因此似乎没有理由首先将其转换为颜色列表。而只是按原样使用

import matplotlib.pyplot as plt
import seaborn as sns

cmap = plt.get_cmap("RdBu_r")
cmap.set_bad(color='black', alpha=0.5)

sns.heatmap(data, cmap=cmap)