#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. ОК… Спасибо… Я собирался изучить возможность сделать это таким образом. Просто подумал, что может быть лучший способ.