如何在 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”颜色图,它构造方式基本相同,但具有更好的感知特性。
如何在 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”颜色图,它构造方式基本相同,但具有更好的感知特性。