如何获取来自sns.color_palette()
函数的调色板的cmap版本?例如,我可以像这样要求颜色酿酒器调色板:
sns.color_palette('Blues')
但
sns.color_palette('Blues', as_cmap=True)
导致“TypeError:color_palette()得到意外的关键字参数'as_cmap'”。
我当然可以使用接受sns.choose_colorbrewer_palette()
参数的as_cmap
,但它只能在交互模式下工作(我不能在python脚本中询问'Blues'
)。< / p>
答案 0 :(得分:3)
如果你想在matplotlib / seaborn函数中使用色彩映射,只需传递名称(例如plt.pcolormesh(..., cmap="Blues")
),matplotlib就会知道该怎么做。
如果由于某种原因需要colormap对象,它将存在于matplotlib.cm
命名空间中。
答案 1 :(得分:1)
只想添加令我困惑的东西。
对于支持它的调色板,如果设置as_cmap=True
,seaborn
会创建一个256色的调色板,然后要求mpl.ListedColorMap
制作mpl.ColorMap
(这将简单在相邻颜色之间进行插值,将它们视为将[0,1]间隔分成相等的部分)。在这种情况下,seaborn
不使用n_colors
参数是有道理的,因为mpl.ColorMap
表示从[0,1]到颜色的函数,并且用于创建的颜色越多使用mpl.ListedColorMap
时,函数越精确。 (据推测,大多数应用都不需要超过256色?)
所以将seaborn调色板转换为mpl.ColorMap
可以通过生成调色板的256种颜色来实现(假设调色板当然是通过算法生成的,因此它产生了许多不同的颜色),然后调用{{1} }。当然,正如@mwaskom指出的那样,可以简单地使用mpl.ListedColorMap
命名空间中的mpl.ColorMap
对象。