AttributeError: у объекта 'NoneType' нет атрибута 'legendHandles' при ручном назначении цвета для каждой метки в пользовательской легенде - PullRequest
0 голосов
/ 10 ноября 2019

Я использую три разных цикла for для анализа трех разных наборов данных. Тем не менее, данные из всех построены в одном. Кроме того, я пытаюсь назначить цвет для легенды. Вот мой код:

    for j in green_data:
        x,y = blah.....
        plt.plot(x,y,'g')
    for j in black_data:
        x,y = blah.....
        plt.plot(x,y,'k')
    for j in red_data:
        x,y = blah.....
        plt.plot(x,y,'r')
    ax = plt.gca()
    leg = ax.get_legend()
    leg.legendHandles[0].set_color('green')
    leg.legendHandles[1].set_color('black')
    leg.legendHandles[2].set_color('red')
    plt.legend(['Green data','Black data','Red data'],loc='best')
    plt.xlabel("x data")
    plt.ylabel("y data")        
    plt.show()

Текущий вывод:

AttributeError: 'NoneType' object has no attribute 'legendHandles'

Что вызывает ошибку в моем коде?

1 Ответ

1 голос
/ 10 ноября 2019

Сначала необходимо создать легенду.

ax.get_legend() работает только после того, как легенда была создана. Попробуйте вместо leg = ax.legend().

https://jakevdp.github.io/PythonDataScienceHandbook/04.06-customizing-legends.html

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