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

Python 如何将seaborn调色板转换为cmap?,python,matplotlib,heatmap,seaborn,colormap,Python,Matplotlib,Heatmap,Seaborn,Colormap,我想将seaborn中的连续发散调色板“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

我想将seaborn中的连续发散调色板“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(color='black')的cmap,而不是将“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) 

我不知道seaborn使用matplotlib颜色贴图,但这是有道理的。非常有帮助,谢谢。