对Get default line colour cycle的回答非常有帮助,表明版本1.5左右有变化。
我想知道是否有一种简单的方法可以“暂停”,“恢复”和“重置” Matplotlib循环默认颜色的方式而无需手动实现。
下面的示例并不是手动进行操作的好方法,而只是说明了如何使用假设的colorpause()
,colorresume()
和colorreset()
。
def colorpause():
global increment_me
increment_me = False
def colorresume():
global increment_me
increment_me = True
def colorreset():
global icolor
icolor = 0
import matplotlib.pyplot as plt
xx = [[0 + 0.1*d, 1 + 0.1*d] for d in range(20)]
y = [1, 0]
if True:
icolorz = []
plt.figure()
colorz = plt.rcParams['axes.prop_cycle'].by_key()['color']
increment_me = True
icolor = 0
plt.subplot(2, 1, 1)
for i, x in enumerate(xx):
plt.plot(x, y, colorz[icolor], linewidth=2)
icolorz.append(icolor)
icolor += increment_me
icolor = icolor%len(colorz)
if i == 5:
colorpause()
if i == 10:
colorresume()
if i >=12 and not i%3:
colorreset()
plt.subplot(2, 1, 2)
plt.plot(icolorz)
plt.ylim(-0.5, 6.5)
plt.title('color number used')
plt.show()