千家信息网

如何在Matplotlib中绘制时间序列数据

发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,这篇文章主要介绍了如何在Matplotlib中绘制时间序列数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。背景介绍将学习如何在Mat
千家信息网最后更新 2024年11月30日如何在Matplotlib中绘制时间序列数据

这篇文章主要介绍了如何在Matplotlib中绘制时间序列数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

背景介绍

将学习如何在Matplotlib中绘制时间序列数据。时间序列数据由包含日期的数据组成。例如绘制在过去几周内比特币价格走势。我们将学习如何以不同方式格式化日期,以便它们更好地与我们的图形一起使用。让我们开始吧...


入门实例

首先来看一个基本的时间序列图,以及格式化x轴的日期显示方式:

from datetime import datetime,timedeltafrom matplotlib import pyplot as pltfrom matplotlib import dates as mpl_dates#设置图表样式plt.style.use('seaborn')#读取数据dates_x = [  datetime(2019,7,24),  datetime(2019,7,25),  datetime(2019,7,26),  datetime(2019,7,27),  datetime(2019,7,28),  datetime(2019,7,29),  datetime(2019,7,30)]#纵轴数据y列表y = [0,1,3,5,7,8,9]#绘制时间序列图表plt.plot_date(dates_x,y,lineStyle='solid')#格式化x轴日期显示plt.gcf().autofmt_xdate()#指定显示的格式date_format = mpl_dates.DateFormatter('%m/%d/%Y')plt.gca().xaxis.set_major_formatter(date_format)plt.tight_layout()plt.show()

运行结果:

综合实例

我们从一个数据文件中data.csv读取过去一段时间关于比特币的价格收盘价的数据走势,内容大致如下:

实现:import pandas as pdfrom datetime import datetime,timedeltafrom matplotlib import pyplot as pltfrom matplotlib import dates as mpl_datesfrom matplotlib import font_managerfrom pandas.plotting import \register_matplotlib_convertersregister_matplotlib_converters()#设置图表样式plt.style.use('seaborn')#读取数据data = pd.read_csv('data.csv')#csv文件中数据中date为str类型#这里做处理方便展示图表时#能够按照日期排序显示data['Date'] = pd.to_datetime(data['Date'])data.sort_values('Date', inplace=True)price_date = data['Date']price_close = data['Close']#调用plot_date()#显示时间序列数据图表plt.plot_date(price_date, price_close,       linestyle='solid')#格式化x轴日期显示plt.gcf().autofmt_xdate()zh_font = font_manager.\FontProperties(fname='C:\\Windows\\Fonts\\msyh.ttf')plt.title('比特币价格',fontproperties=zh_font)plt.xlabel('日期',fontproperties=zh_font)plt.ylabel('收盘价',fontproperties=zh_font)plt.tight_layout()plt.show()

运行结果:

感谢你能够认真阅读完这篇文章,希望小编分享的"如何在Matplotlib中绘制时间序列数据"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0