iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何使用Python绘制时间序列图
  • 891
分享到

如何使用Python绘制时间序列图

2023-06-26 04:06:00 891人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章跟大家分析一下“如何使用python绘制时间序列图”。内容详细易懂,对“如何使用Python绘制时间序列图”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“如何使用Pytho

这篇文章跟大家分析一下“如何使用python绘制时间序列图”。内容详细易懂,对“如何使用Python绘制时间序列图”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“如何使用Python绘制时间序列图”的知识吧。

01从Quandl检索数据集

Quandl简介

Quandl是一个为金融、经济和另类数据服务的平台,这些数据由各种数据发布商提供,包括联合国、世界银行、中央银行、贸易交易所和投资研究公司。

使用Python的Quandl模块,你可以轻松地将金融数据导入Python中。Quandl提供免费的数据集,其中包括一些数据样本,但如果你需要访问一些优质的数据产品,就必须要先付费。

将数据从Quandl导入到Python中的过程非常简单,假如我们对泛欧交易所的荷兰银行集团感兴趣,只需要在Jupyter Notebook单元格中输入以下代码(这个数据集在Quandl上的代码为EURONEXT/ABN):

 In[]:import quandl#Replace with your own Quandl api key QUANDL_API_KEY="BCzkk3NDWt7H9yjzx-DY'quandl.ApiConfig.api_key=QUANDL_API_KEYdf =quandl.get('EURONEXT/ABN')

将Quandl的API密钥存储在常量变量中是一个很好的习惯,如果API密钥发生改变,只需要在这一个地方修改它!

导入quandl包后,我们将Quandl的 API密钥存储在常量变量QUANDL_API_KEY中。这个常量值用于设置Quandl模块的API密钥,并且只需要对quandl包的每个导入执行一次。最后一行调用quandl.get()指令,将ABN数据集从Quandl直接下载到df变量中。(注意:EURONEXT是数据提供者Euronext Stock Exchange的缩写。)

默认情况下,Quandl会将数据集导入到pandas模块的DataFrame中。我们可以用如下代码来检查DataFrame的头和尾:

In[]:
df:head()
out[]:
             OPen  High     Low      Last    Volume      Turnower
Date
2015-11-20  18.18  18.43  18.000    18.35  38392898.0  7.003281e+08
2015-11-23  18.45  18.70  18.215    18.61   3352514.0  6.186446e+07
2015-11-24  18.70  18.80  18.370    18.80   4871901.0  8.994087e+07
2015-11-25  18.85  19.50  18.770    19.45   4802607.0  9.153862e+07
2015-11-26  19.48  19.67  19.410    19.43   1648481.0  3.220713e+07 
In[]:
df:tail()
Out []:
            OPen  High     Low  Last     Volume      Turnower
Date
2018-08-06  23.50  23.53  23.23  23.34  1126371.0  2.634333e+07
2018-08-07  23.59  23.60  23.31  23.33  1785613.0  4.177652e+07
2018-08-08  24.00  24.39  23.83  24.14  4165320.0  1.007085e+08
2018-08-09  24.40  24.46  24.15  24.37  2422470.0  5.895752e107
2018-08-10  23.70  23.94  23.28  23.51  3951850.0  9.336493e+07

默认情况下,head()和tail()命令分别显示的是DataFrame的前5行和最后5行,你可以把它传递的参数设置成一个具体的数字来定义要显示的行数。例如,head(100)将显示DataFrame中的前100行。

如果你没有为get()命令设置任何附加参数,那么它将会检索整个时间序列数据集,即从你进行操作时的前一个工作日一直到2015年11月。

可视化这个DataFrame,我们可以通过plot()命令绘制一个图

In[]:  %matplotlib inline  import matplotlib.pyplot as plt  df.plot();

运行结果如下图所示。

如何使用Python绘制时间序列图

pandas的plot()命令将返回一个Axis对象,此对象的字符串表示将与plot()命令一起显示在界面上。为了消除这个信息,我们在最后一条语句的末尾添加一个分号“;”。或者,我们也可以在单元格底部添加一条pass语句。除此之外,我们还可以将绘图函数分配给一个变量,这样也能消除这个输出。

默认情况下,pandas的plot()命令用matplotlib库来显示图像,如果系统报错的话,请检查你是否安装了这个库,并且%matplotlib inline命令至少被调用过一次。你可以自定义图表的外观,有关DataFrame中plot命令的更多信息,可在以下网页上找到:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.plot.html

02绘制收盘价与成交量的关系图

当没有参数提供给plot()命令时,它会用DataFrame的所有列在同一图表上绘制折线图,我们无法从这个杂乱无章的图像中得到什么有用的信息。为了有效地从这些数据中提取信息,我们可以绘制一只股票的收盘价与成交量的关系图。

在单元格中输入以下命令:

In[]:  princes=df[‘Last']  volumes=df[‘Volume']

上述命令会将我们感兴趣的数据分别存储到closing_prices和volumes这两个变量中,我们可以继续使用head()和tail()命令查看由此产生的pandas数据类型的头部和底部:

In[]:   Prices .head()out[]:   Date   ...   2015-11-20   18.35   2015-11-23   18.61   2015-11-24   18.80   2015-11-25   19.45   2015-11-26   19.43   Name:  Last,dtype:float64In[]:    volumes.tail()out[]:   Date   2018-08-031252024.0   2018-08-061126371.0   2018-08-071785613.0   2018-08-084165320.0   2018-08-09。2422470.0   Name:Volume,dtype:float64

如果你想知道某个特定变量的类型,可以使用type()命令。比如,type(volumes)命令的运行结果是 pandas.core.series.Series,这样我们就知道volumes是属于pandas序列数据类型的。

从2018年一直追溯到2015年都有数据可查,这样就可以绘制收盘价与成交量的关系图:

In[]:#The top Plot consisting of daily closing  Pricestop=plt.subplot2grid((4,4),(0,0),rowspan=3,colspan=4)top .plot(Prices.index,Prices,1abel='Last')Plt.title('ABN Last Price from 2015 -  2018')plt.legend(loc=2)#The bottom Plot consisting of daily trading volumebottom=plt.subplot2grid((4,4),(3,0),rowspan=1,colspan=4)bottom.bar(volumes.index,volumes)plt.title('ABN Daily Trading  Volume')Plt.GCf () .set_size_inches(12,8)plt.subplots_adjust(hspace=0.75)

运行结果如下图所示。

如何使用Python绘制时间序列图

在第一行中,subplot2grid命令的第一个参数(4,4)将整个图划分为一个4x4的网格,第二个参数(0,0)表明绘图将锚定在图形的左上角。rowspan=3指示绘图将占据网格上4个可用行中的3行,即实际高度为图形的75%;colspan=4指示绘图将占用网格的所有4列,即使用其所有可用宽度。这个命令会返回一个matplotlib axis对象,我们将使用该对象绘制图形的上部。

在第二行中,使用plot()命令绘制上图表,x轴为日期值,y轴上的数值为收盘价格。在接下来的两行中,我们指定了当前图像的标题以及放置在左上角的时间序列数据的图例。 

接下来,我们重复上述操作,在下部呈现每日交易量,这个图表锚定在下方1行4列的网格空间中。

为了让图像更清楚,我们调用set_size_inches()命令将图形设置为9英寸宽6英寸高,从而形成了一个矩形图形(前面的gcf()命令表示获取当前的尺寸)。最后,我们调用带有hspace参数的subplots_adjust()命令,在上部和下部的两个子图之间添加少量的空缺。

subplots_adjust()命令用来对各个子图的布局进行优化,它可以接受的参数有:left、right、bottom、top、wspace、hspace。

03绘制烛台图

烛台图是另一种流行的财务图表,它显示的信息比单一的价格图更多。烛台是每一个特定时间点的波动,其中包含四种重要的信息:开盘价、最高价、最低价和收盘价。

我们现在不再推荐使用以前的matplotlib.finance模块,用另一个由提取的代码组成的mpl_finance包来取代它,你可以在命令行窗口输入以下代码来获取这个包:

$pip install mpl-finance

为了更加方便地可视化烛台图,我们将使用ABN数据集的一个子集。在下面的例子中,我们在Quandl上检索2018年7月份的每日价格作为数据集,并绘制如下的烛台图:

In[]:%matplotlib inline import  quandlfrom mpl_finance import candlestick_ohlcimport matplotlib.dates as mdatesimport matplotlib.pyplot as pltquandl.ApiConfig.api kcy-QUANDL API KEYdf_subset-quandl.get('EURONEXT/ABN',       start_date='2018-07-01",       ena_date='2018-07-31')df_subset['Date'"]=df_subset.indqex.map(mdates.dqate2num)df_ohlc=df_subset[['Date','Open','High','Low','Last']]figure,ax=plt.sSubPlots(figsize= =(8,4))fORMatter=mdates.DateFormatter('%Y-%m-%d')ax.xaxis.set_major_formatter(formatter)candlestick_ohlc(ax                 df_ohlc.values,                 width=0.8,                 colorup='green',                 colordown='red')plt.show()

烛台图如下图所示。

如何使用Python绘制时间序列图

你可以在quandl.get()命令中定义start_date和end_date的值,从而指定数据集的时间范围。

从Quandl检索的价格会放在一个名为df_dataset的变量中,由于matplotlib的绘图函数需要自己的格式,我们用mdates.date2num命令转换包含日期和时间在内的索引值,并将它们放在名为Date的新列中。

烛台的日期、开盘价、最高价、最低价和收盘价等数据将被提取为一个DataFrame列存储在df_ohlc变量中。plt.subplots()函数会创建一个8英寸宽和4英寸高的图形,其中沿着x轴的标签将被转换为我们可读的格式。

调用candlestick_ohlc()命令来进行烛台图的绘制(烛台宽度为0.8或全天宽度的80%),收盘价高于开盘价的上涨用浅灰色表示,而收盘价低于开盘价的下跌则用深灰色表示。最后,用plt.show()命令来显示烛台图。

关于如何使用Python绘制时间序列图就分享到这里啦,希望上述内容能够让大家有所提升。如果想要学习更多知识,请大家多多留意小编的更新。谢谢大家关注一下编程网网站!

--结束END--

本文标题: 如何使用Python绘制时间序列图

本文链接: https://www.lsjlt.com/news/306681.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用Python绘制时间序列图
    这篇文章跟大家分析一下“如何使用Python绘制时间序列图”。内容详细易懂,对“如何使用Python绘制时间序列图”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“如何使用Pytho...
    99+
    2023-06-26
  • 手把手教你使用Python绘制时间序列图
    目录01从Quandl检索数据集02绘制收盘价与成交量的关系图03绘制烛台图导读:分析时间序列数据的一种简单而有效的方法就是将时间序列数据可视化在一个图表上,这样我们就可以从中推断出...
    99+
    2024-04-02
  • 如何利用R语言绘制时间序列图
    这篇文章主要讲解了“如何利用R语言绘制时间序列图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用R语言绘制时间序列图”吧!数据GDP.csv文件,存储1879~2019年河南省GDP数...
    99+
    2023-06-08
  • python绘制发散型柱状图+误差阴影时间序列图+双坐标系时间序列图+绘制金字塔图
    目录1.绘制发散型柱状图2.绘制带误差阴影的时间序列图3.绘制双坐标系时间序列图4.绘制金字塔图1.绘制发散型柱状图 python绘制发散型柱状图,展示单个指标的变化的顺序和数量,在...
    99+
    2024-04-02
  • 利用R语言绘制时间序列图的操作
    数据 GDP.csv文件,存储1879~2019年河南省GDP数据 绘图 # 读取数据, 首先将excel 格式的转化为 csv 格式 再读取 h <- read.tab...
    99+
    2024-04-02
  • 怎么使用pyecharts绘制时间轮播图
    本篇内容介绍了“怎么使用pyecharts绘制时间轮播图”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、pyecharts绘制时间轮播柱形...
    99+
    2023-07-02
  • python画时间序列散点图
    在运维管理中,经常遇到时间序列的数据,比如网卡流量、在线用户数、并发连接数,等等。用散点图可以直观的查看数据的分布情况。 matplotlib模块的pyplot有画散点图的函数,但是该函数要求x轴是数字类型。pandas的plot函数里,散...
    99+
    2023-01-31
    序列 时间 python
  • 如何使用Python 绘制瀑布图
    目录前言瀑布图瀑布图使用条件举个例子Plotly 绘制瀑布图参数设置完整代码Matplotlib绘制瀑布图总结前言 在日常生活中,我们的工作有时候需要对数据进行可视化,让它一图标之类...
    99+
    2024-04-02
  • Python时间序列如何实现
    这篇文章主要介绍“Python时间序列如何实现”,在日常操作中,相信很多人在Python时间序列如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python时间序列如何实现”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-05
  • 如何使用python matplotlib绘制散点图
    今天小编给大家分享一下如何使用python matplotlib绘制散点图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2023-07-02
  • 如何使用Python Matplotlib绘制条形图
    目录前言一、一般条形图二、横向条形图三、分组条形图的绘制四、堆叠条形图绘制总结 前言 matplotlib是一个非常强大的Python第三方绘图包,可以绘制非常多非常漂亮的...
    99+
    2024-04-02
  • Python如何使用Matplotlib绘制甘特图
    小编给大家分享一下Python如何使用Matplotlib绘制甘特图,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.引言甘特图已经拥有 100 多年的历史,这种可视化图表对项目管理非常有用。Henry Gantt 为了分...
    99+
    2023-06-22
  • Python几种绘制时间线图的方法
    目录Matplotlib 制作Plotly 绘制Excel 绘制Matplotlib 制作 Matplotlib 作为 Python 家族最为重要的可视化工具,其基本的 API 以及...
    99+
    2024-04-02
  • 如何使用Redis序列化存储时间序列数据
    在Redis中存储时间序列数据可以采用以下两种方式进行序列化: 使用Redis的数据结构:可以将时间序列数据存储在Redis的有...
    99+
    2024-04-29
    Redis
  • 如何在Python中使用folium绘制地图
    这期内容当中小编将会给大家带来有关如何在Python中使用folium绘制地图,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、简介folium 建立在 Python 生态系统的数据应用能力和 Leafl...
    99+
    2023-06-15
  • Python中如何使用Matplotlib库绘制图形
    目录前言一、简单的正弦函数与余弦函数二、进阶版正弦函数与余弦函数1.改变颜色与粗细2.设置图片边界3.设置记号4.设置记号的标签5.设置X,Y轴6.完整代码三、绘制简单的折线图总结前...
    99+
    2024-04-02
  • Python中如何使用Seaborn绘制基线图
    这篇文章给大家分享的是有关Python中如何使用Seaborn绘制基线图的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。基线图本文中的脚本在python3.8.3中进行了测试。让我们使用Seaborn内置的peng...
    99+
    2023-06-26
  • Python如何使用pyecharts控件绘制图表
    这篇文章主要介绍“Python如何使用pyecharts控件绘制图表”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python如何使用pyecharts控件绘制图表”文章能帮助大家解决问题。一、Ec...
    99+
    2023-06-30
  • 如何用python绘制雷达图
    目录一、比较汽车性能 二、比较不同城市近期天气状况雷达图是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据的图形方法,雷达图通常用于综合分析多个指标,具有...
    99+
    2024-04-02
  • 如何使用python的matplotlib绘制折线图
    这篇文章主要介绍“如何使用python的matplotlib绘制折线图”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用python的matplotlib绘制折线图”文章能帮助大家解决问题。pl...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作