如何将 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)
我想将 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)