无法以日期为索引绘制MACD

时间:2020-09-04 11:12:30

标签: python pandas numpy matplotlib

我是Python的初学者,我正在尝试学习如何用信号线绘制MACD。我有一个带有“日期”,“关闭”等列的CSV。我希望日期成为索引。

日期采用以下格式:02/08/20 20:18

因此,如果我不将“日期”作为索引并绘制它,则该图将显示正常并且看起来很正常。这是我用来显示收盘价和日期的代码:

plt.figure(figsize=(20, 5))
plt.plot(df['Close'], label='Close')
plt.title('Close Price History')
plt.xlabel('Date')
plt.ylabel('Price USD ($)')
plt.show

但是,如果我使用以下代码“标准化”日期:

df['Date'] = pd.to_datetime(df.Date)
df['Date'] = pd.to_datetime(df['Date']).dt.floor('d')
df = df.set_index(pd.DatetimeIndex(df['Date'].values))

然后使用第一个代码绘制图形,它在整个地方都显得非常混乱。

有人可以在不破坏我的图形和计算的情况下帮助我使“日期”列成为索引吗?

非常感谢您!

1 个答案:

答案 0 :(得分:0)

您可以尝试如下操作:

这里有一个小数据框作为示例。

df = pd.DataFrame({"Date":["02/09/20 20:18", "02/10/20 20:18", "02/11/20 20:18", 
                           "02/12/20 20:18", "02/13/20 20:18", "02/14/20 20:18"],
                   "Close":[20, 40, 50, 25, 80, 30]})

然后您可以按照以下步骤设置索引和绘图:

df["Date"] = pd.to_datetime(df["Date"])
df = df.set_index("Date")

plt.plot(df.index, df["Close"])
plt.show()

enter image description here