Как получить заголовки подзаголовков из списка или автоматически из данных

#python #pandas #matplotlib #subplot #yahoo-finance

#python #pandas #matplotlib #подзаголовок #yahoo-финансы

Вопрос:

У меня есть этот код:

 from pandas_datareader import data as pdr
import pyfolio as pf
import matplotlib.pyplot as plt

myStartDate = "2019-1-1"   # (Format: Year-Month-Day)
myEndDate = "2020-11-11"   # (Format: Year-Month-Day)
myTickers = ["AAPL", "MSFT"]

myData = pdr.get_data_yahoo(myTickers, myStartDate, myEndDate)

myDailyAdjustedClose = myData[['Adj Close']]
returns = myDailyAdjustedClose.pct_change()

returnsColumnCount = returns.shape[1]

fig, ax = plt.subplots(returnsColumnCount, 1, figsize=(10, 10))
fig.tight_layout(pad=5)

for x in range(returnsColumnCount):
    columnData = returns.iloc[:, x]
    pf.plot_drawdown_underwater(columnData, ax=ax[x])

plt.show();
  

Но все графики называются просто «Undewater Plot». Если я добавлю это «ax [x].set_title (‘Test’)» в цикл for, я могу изменить все заголовки на «Test». Я хочу, чтобы графики были названы в честь списка «myTickers». Таким образом, первый график будет называться «AAPL», а 2-й график будет называться «MSFT»] … и т.д… Должен ли я индексировать через список «myTickers»? или есть более элегантный способ? Что-то вроде «ax.set_title(myTickers)»… Или, возможно, автоматически получать их из возвращаемых данных?

Комментарии:

1. Я полагаю, вы должны иметь возможность использовать x внутри цикла for в качестве индекса для списка тикеров, т. Е. ax[x].set_title(myTickers[x]) предполагая, что порядок тикеров не изменяется во всем скрипте.

2. ОК… Спасибо… Я собирался изучить возможность сделать это таким образом. Просто подумал, что может быть лучший способ.