Matplotlib Plotting: AttributeError: у объекта 'list' нет атрибута 'axhline' - PullRequest
0 голосов
/ 03 марта 2020

Я строю 3 графика на одной фигуре.

Первый график вышел хорошо, и я мог бы использовать методы, связанные с графиком matplotlib.

fig = plt.figure(constrained_layout = True, figsize = [10,10])
gs = fig.add_gridspec(4,2)
fig_ax_curve = fig.add_subplot(gs[0:2,:])

Однако, как я продолжил со вторым графиком:

fig_ax_2_10 = fig.add_subplot(gs[2,:])
fig_ax_2_10 = fig_ax_2_10.plot(yield_history_2_10_30["2Y-10Y Spread"], label = "2Y - 10Y Spread", color = "red")
fig_ax_2_10.axhline(color = "black")

Мне не удалось выполнить ни один из связанных методов, и я получил ответ:

AttributeError: 'list' object has no attribute 'axhline'

Мне известен существующий вопрос, подобный следующему: Создание графика Matplotlib: AttributeError: у объекта 'list' нет атрибут 'xaxis'

Если я не ошибаюсь, мой код уже придерживался того, что предлагается в этом ответе, чтобы избежать ошибки, особенно с использованием ax. (методы)

1 Ответ

1 голос
/ 03 марта 2020

Ошибка появляется из строки:

fig_ax_2_10 = fig_ax_2_10.plot(yield_history_2_10_30["2Y-10Y Spread"], label = "2Y - 10Y Spread", color = "red")

Вы присваиваете результат функции графика (список Line2D) для fig_ax_2_10. Вот почему вы не можете вызвать axhline для этого объекта.

Просто замените:

fig_ax_2_10 = fig.add_subplot(gs[2,:])
fig_ax_2_10.plot(yield_history_2_10_30["2Y-10Y Spread"], label = "2Y - 10Y Spread", color = "red")
fig_ax_2_10.axhline(color = "black")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...