首页 > 解决方案 > Matplotlib 日期在 Python 中的图形/日期格式问题上显示不正确的问题

问题描述

我正在尝试在 Google Colab 中使用 matplotlib 绘制基本的时间序列图。

我有一个相当基本的问题,我无法正确显示日期,日期从 1971 年到 2020 年,所以那里有很多数据。

我已将代码和图表保存在以下位置:

https://github.com/Ianfm94/Financial_Analysis/blob/master/LSTM_NN.ipynb

如下图所示,日期只是显示为黑色。

我还尝试使用 matplotlib 包中的“Dateformatter”格式化日期,但这并没有达到预期的效果。

有人可以解释一下如何解决这个日期问题吗?

谢谢。

发行日期

标签: pythonmatplotlib

解决方案


有一个功能可以自动调整 xticks。 matplotlib.dates请参考这个页面

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# from matplotlib.dates import DateFormatter
import matplotlib.dates as mdates

# Reading in data
nasdaq_data = "https://raw.githubusercontent.com/Ianfm94/Financial_Analysis/master/NASDAQ_data%20US%20Listing.csv"

X = pd.read_csv(nasdaq_data)
Y = X['close']
#print(X.head(n=3))
X['date'] = pd.to_datetime(X['date'])

# Create figure and plot space
fig, ax = plt.subplots(nrows=1, ncols=1, figsize=(12, 12))

# Add x-axis and y-axis, colour of graph and increase 
# the line-width
ax.plot(X['date'],
       X['mid_price'],
       color='#69b3a2', lw=2)

# Set title and labels for axes
ax.set(xlabel='Date',
       ylabel='Index Value in $',
       title='Nasdaq Index Analysis')

# Change plot background colour
ax.set_facecolor('xkcd:light grey')

locator = mdates.AutoDateLocator()
formatter = mdates.ConciseDateFormatter(locator)

ax.xaxis.set_major_locator(locator)
ax.xaxis.set_major_formatter(formatter)

# Add grid
plt.grid(b=True, which='both', axis='both')

plt.show()

在此处输入图像描述


推荐阅读