如何在 seaborn 中将 matplotlib colormap 设置为调色板

How to set matplotlib colormap as color palette in seaborn

如何在 seaborn 中将 matplotlib 颜色图设置为我的调色板?

有一个类似的问题here,但我无法实现:

import matplotlib.colors as mcolors
cmap = mcolors.LinearSegmentedColormap.from_list('jet')
sns.set_palette(cmap)

第二行抛出如下错误:from_list() missing 1 required positional argument: 'colors'

破解 seaborn 的反喷气安全系统的最简单方法是直接使用 mpl_palette

sns.mpl_palette("jet", 6)

更通用的方法是“给定一个 matplotlib 颜色图,我如何获得离散颜色列表?”是调用强度向量介于 0 和 1 之间的颜色图对象:

plt.cm.jet(np.linspace(0, 1, 6))

请注意,你会在那里得到不同的结果,因为 seaborn 会剪掉两个极值,做一些类似

的事情
plt.cm.jet(np.linspace(0, 1, 8))[1:-1]

此外,虽然我同意 jet 基本上是少量离散颜色的良好来源,除非出于某种原因你真的需要专门来自 jet 的颜色,我建议查看“turbo”颜色图,它构造方式基本相同,但具有更好的感知特性。