如何将海生调色板转换为 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热图,将null值填充为深色方块,这就是为什么我尝试使用set_bad(color='black'(创建一个cmap,而不是仅仅将"RdBu_r"传递到sns.heatmap的cmap参数中。

谢谢大家。

"RdBu_r"是一个matplotlib colormap。因此,似乎没有理由先将其转换为颜色列表。相反,只需按原样使用它

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) 

最新更新