我想使用 matplotlib 循环器和来自 palettable 的颜色。
循环仪看起来像这样:
from cycler import cycler
plt.rc('axes', prop_cycle=(cycler('color', ['r', 'g', 'b', 'y']) +
cycler('linestyle', ['-', '--', ':', '-.'])))
如何用从 palettable 获得的颜色图替换上面的颜色列表?
import palettable
cmap = palettable.colorbrewer.diverging.PRGn_11.mpl_colormap
对于答案,使用 palettable 并不重要,但知道如何使用颜色图很重要。
cycler
需要一个可迭代对象来分配给 'colors'
。
您可以通过以下方式生成一个:
[plt.get_cmap('jet')(1. * i/n) for i in range(n)]
所以从你原来的例子:
plt.rc('axes', prop_cycle=(cycler('color', ['r', 'g', 'b', 'y']) +
cycler('linestyle', ['-', '--', ':', '-.'])))
x = [1,2,3,4]
for i in range(4):
plt.plot([_ + i for _ in x])
从“jet”颜色图修改列表:
n = 4 # Number of colors
new_colors = [plt.get_cmap('jet')(1. * i/n) for i in range(n)]
plt.rc('axes',
prop_cycle=(cycler('color', new_colors) +
cycler('linestyle', ['-', '--', ':', '-.'])))
for i in range(4):
plt.plot([_ + i for _ in x])