Как сохранить последний нанесенный line2D всегда одинаковым цветом? - PullRequest
0 голосов
/ 07 мая 2019

Я кодирую программу, в которой пользователь может перерисовывать функции на определенной оси. Есть ли способ, которым последняя построенная функция всегда имеет фиксированный цвет (скажем, зеленый)?

Например, приведенный ниже код принимает в качестве входных данных степень многочлена и строит графики всех многочленов одинаковой и более низкой степени. Я хотел бы, чтобы твик, такой как последний график (в данном случае полином высшей степени), всегда был зеленым:

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 голосов
/ 07 мая 2019

Это должно сделать:

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,но это, очевидно, необязательно

Редактировать: зеленый цвет удален из цветового цикла, поэтому есть только одна зеленая линия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...