matplotlib get_color для подзаговора - PullRequest
0 голосов
/ 27 августа 2018

Я следую учебному пособию отсюда: https://matplotlib.org/gallery/ticks_and_spines/multiple_yaxis_with_spines.html
Тем не менее, используемый пример предназначен для отдельного графика, и в настоящее время я работаю с вспомогательными участками. Моя версия следующая:

    p1 = tr[names['equity']].plot(ax=ax3, linewidth = 0.75)
    axb = ax3.twinx()
    axb.spines["right"].set_position(("axes", 0.5))
    p2 = tr[names[local_rating]].plot(ax=axb, c= 'r', linewidth = 0.75)
    axb.grid(False)
    axb.margins(x=0)
    axc = ax3.twinx()    
    p3 = tr[names['vol']].plot(ax=axc, c = 'g', linewidth = 0.75)
    axc.grid(False)
    axc.margins(x=0)
    ax3.yaxis.label.set_color(p1.get_color())
    axb.yaxis.label.set_color(p2.get_color())
    axc.yaxis.label.set_color(p3.get_color())

Когда я пытаюсь сделать pX.get_color (), я получаю:

AttributeError: у объекта 'AxesSubplot' нет атрибута 'get_color'

Мой вопрос: Какой метод мне следует использовать, чтобы восстановить цвет подзаговора?

Я знаю, что мог бы вручную настроить цвет, так как это небольшое количество инструкций, но мне просто интересно, есть ли другой способ.

Спасибо

1 Ответ

0 голосов
/ 27 августа 2018

Это не имеет ничего общего с подсюжетами. Вы используете функцию построения панд вместо функции matplotlib plot, как в примере.

Оси действительно не имеют цвета. Если вас интересует цвет линий внутри осей, вы можете использовать, например,

ax.get_lines()[0].get_color()

чтобы получить цвет первой линии по осям ax.

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