如何在 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'
答案 0 :(得分:3)
破解 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”颜色图基本相同,但具有更好的感知特性。