如何将 ListedColorMap 转换为颜色列表?

jav*_*dba 8 python matplotlib

我正在尝试使用较新的cycles参数:但它似乎不接受ListedColorMap. 那么如何提取并使用a 中包含的颜色列表ListedColorMap(由对象表示) ?colormap

现在:

mpl.rcParams['axes.prop_cycle'] = plt.cycler('color',cmap)
Run Code Online (Sandbox Code Playgroud)

这失败了:

TypeError: 'ListedColormap' object is not iterable

以下确实有效 - 但随后我们会丢失原始颜色图的值,例如linspace

mpl.rcParams['axes.prop_cycle'] = plt.cycler('color',['r','g','b'])
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这看起来应该非常简单:只是如何将 转换为colormap列表..但是如何做到呢?

更新尊敬的@unutbu 提供了下面的答案( ListedColorMap.colors),这里是结果。

在此输入图像描述

unu*_*tbu 10

In [136]: import matplotlib.colors as mcolors

In [137]: cmap = mcolors.ListedColormap(["w", "grey", "green", "red"])

In [138]: cmap.colors
Out[138]: ['w', 'grey', 'green', 'red']

In [139]: plt.cycler('color', cmap.colors)
Out[139]: cycler('color', ['w', 'grey', 'green', 'red'])
Run Code Online (Sandbox Code Playgroud)

cmap.colors发现使用IPython 的制表符补全来显示cmap的属性:

在此输入图像描述