【问题标题】:Cannot plot MACD with Date as index无法以日期为索引绘制 MACD
【发布时间】:2020-09-04 11:12:30
【问题描述】:

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

日期格式如下:02/08/20 20:18

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

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

然后使用第一个代码绘制图形,它显示得非常混乱,到处都是。

有人可以帮我将“日期”列设为索引,而不会破坏我的图表和计算吗?

非常感谢!

【问题讨论】:

  • 根据您的数据集在to_datetime函数中提供格式。

标签: python pandas numpy matplotlib


【解决方案1】:

你可以试试这样的:

这里以一个小的数据框为例。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-20
    • 2017-10-04
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    相关资源
    最近更新 更多