您可以使用ax.set_prop_cycle来指定循环的颜色列表。
色彩映射表是可调用,所以一个简单的方法,以产生色彩是0和1之间通过浮标的序列与颜色表,然后将返回的RGBA颜色数组。
例如,
In [93]: jet = plt.cm.jet
In [94]: jet([0,0.5,1])
Out[94]:
array([[ 0. , 0. , 0.5 , 1. ],
[ 0.49019608, 1. , 0.47754586, 1. ],
[ 0.5 , 0. , 0. , 1. ]])
import matplotlib.pylab as plt
import matplotlib.rcsetup as rcsetup
import numpy as np
jet = plt.cm.jet
fig, ax = plt.subplots()
N = 20
idx = np.linspace(0, 1, N)
ax.set_prop_cycle(rcsetup.cycler('color', jet(idx)))
x = np.linspace(0, 100, 200)
for i in range(1, N+1):
ax.plot(x, np.sin(x)+i)
ax.set_ylim(0, N+1)
plt.show()
![enter image description here](https://i.stack.imgur.com/nQ19N.png)
一个人怎么能得到当前颜色周期图的阵列? – Royi
'ax._get_lines.prop_cycler'返回一个从当前颜色周期产生颜色的迭代器。假设颜色循环不包含重复项,您可以使用以下命令生成循环中的颜色列表:'seen = set()','colors = list(itertools.takewhile(lambda x:x not in seen and not seen.add (x),(元组(项目['颜色'])的项目在ax._get_lines.prop_cycler)))''。 – unutbu