如何使最后绘制的line2D始终保持相同的颜色?

时间:2019-05-07 14:20:25

标签: python matplotlib plot colors

我正在编写一个程序,使用户可以在已定义的轴上绘制函数。有什么方法可以使最后绘制的函数始终是固定颜色(例如绿色)?

例如,下面的代码将多项式的阶数作为输入,并绘制所有相同阶数和更低阶数的多项式。我想要一个调整,例如 last 图(在这种情况下,最高阶的多项式)始终为绿色:

import numpy as np
import matplotlib.pyplot as plt

def plot_polynomials(highest_degree):

    x = np.arange(0,1,0.01)
    for degree in np.arange(1,highest_degree+1):
        coefficients = np.repeat(1,degree)
        label = 'degree={}'.format(degree)
        polynomial = np.polynomial.polynomial.polyval(x, coefficients)
        plt.plot(x, polynomial, label=label)

    plt.legend()
    plt.show()

plot_polynomials(6)

期待评论!

1 个答案:

答案 0 :(得分:0)

这应该做:

def plot_polynomials(highest_degree):

    x = np.arange(0,1,0.01)
    for degree in np.arange(1,highest_degree+1):
        coefficients = np.repeat(1,degree)
        label = 'degree={}'.format(degree)
        colors=plt.rcParams['axes.prop_cycle'].by_key()['color']
        colors.pop(2) #Removing green from color cycle
        polynomial = np.polynomial.polynomial.polyval(x, coefficients)
        if degree==highest_degree:
            plt.plot(x, polynomial, label=label, color='g', lw=3)
        else:
            plt.plot(x, polynomial, label=label, color=colors[degree-1])
    plt.legend()
    plt.show()

plot_polynomials(6)

输出:

enter image description here

注意:使用lw将行加粗,但这显然是可选的

编辑:从颜色循环中删除了绿色,因此只有一条绿线