python - Matplotlib 日期在 Python 中的图形/日期格式问题上显示不正确的问题
问题描述
我正在尝试在 Google Colab 中使用 matplotlib 绘制基本的时间序列图。
我有一个相当基本的问题,我无法正确显示日期,日期从 1971 年到 2020 年,所以那里有很多数据。
我已将代码和图表保存在以下位置:
https://github.com/Ianfm94/Financial_Analysis/blob/master/LSTM_NN.ipynb
如下图所示,日期只是显示为黑色。
我还尝试使用 matplotlib 包中的“Dateformatter”格式化日期,但这并没有达到预期的效果。
有人可以解释一下如何解决这个日期问题吗?
谢谢。
解决方案
有一个功能可以自动调整 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()
推荐阅读
- sql - 根据同一行的值更新行
- mvvmcross - WPF 应用程序中的自定义视图演示者
- assembly - 如何使用 NASM 调用位于后两个扇区的代码?
- mysql - 为什么我不能在两个表中使用触发器来将数据保存在第一个表中?最好的方法是什么?
- c++ - c++:128位比较和交换的原子性测试
- c# - WPF MVVM - OneWay 数据绑定的正确方法
- apache-kafka - Kafka 连接连续 Put 之间的延迟
- java - 带有标签和按钮的 Vaadin 8 水平布局
- python-3.x - 使用 Python 以 sudo 启动 shell 脚本时如何验证正确的密码
- jquery - 为什么在下拉列表中追加数据后,表单提交为控制器中的下拉列表发送空值