Python:使用pyfolio的plot_drawdown_和pandasdatareader的plot_data_yahoo绘制单独的绘图时遇到了麻烦

2024-10-01 13:27:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码:

from pandas_datareader import data as pdr
import pyfolio as pf

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()

pf.plot_drawdown_underwater(returns)

问题是苹果和微软都在同一幅图上。相反,我想要两个单独的绘图

除了“pf.plot\u drawdown\u underwater(returns)”,我还尝试了:

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

但我还是得到了同样的结果


Tags: importformatdataplotasyearreturnsday
1条回答
网友
1楼 · 发布于 2024-10-01 13:27:02

这项工作:

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();

相关问题 更多 >