您可以使用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()
一個人怎麼能得到當前顏色週期圖的陣列? – 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