除了手动之外,还可以在Matplotlib中“暂停”,“恢复”和“重置”默认颜色循环吗?

时间:2018-10-08 05:01:38

标签: python matplotlib colors

Get default line colour cycle的回答非常有帮助,表明版本1.5左右有变化。

我想知道是否有一种简单的方法可以“暂停”,“恢复”和“重置” Matplotlib循环默认颜色的方式而无需手动实现

下面的示例并不是手动进行操作的好方法,而只是说明了如何使用假设的colorpause()colorresume()colorreset()

colorpause, colorresume, colorreset illustration

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()

0 个答案:

没有答案