我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

这篇文章跟大家分析一下“如何使用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绘制时间序列图就分享到这里啦,希望上述内容能够让大家有所提升。如果想要学习更多知识,请大家多多留意小编的更新。谢谢大家关注一下编程网网站!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

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

下载Word文档

猜你喜欢

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

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

如何利用R语言绘制时间序列图

这篇文章主要讲解了“如何利用R语言绘制时间序列图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何利用R语言绘制时间序列图”吧!数据GDP.csv文件,存储1879~2019年河南省GDP数
2023-06-08

Python如何使用matplotlib绘制柱状图

Python中使用Matplotlib绘制柱状图,包括导入库、准备数据、创建柱状图、自定义外观、显示柱状图等步骤。该方法适用于比较不同类别中值的统计图,并可自定义颜色、宽度、标签等外观。
Python如何使用matplotlib绘制柱状图
2024-04-02

Python如何使用Matplotlib绘制甘特图

小编给大家分享一下Python如何使用Matplotlib绘制甘特图,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.引言甘特图已经拥有 100 多年的历史,这种可视化图表对项目管理非常有用。Henry Gantt 为了分
2023-06-22

如何使用python matplotlib绘制散点图

今天小编给大家分享一下如何使用python matplotlib绘制散点图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一.
2023-07-02

怎么使用pyecharts绘制时间轮播图

本篇内容介绍了“怎么使用pyecharts绘制时间轮播图”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、pyecharts绘制时间轮播柱形
2023-07-02

Python中如何使用Seaborn绘制基线图

这篇文章给大家分享的是有关Python中如何使用Seaborn绘制基线图的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。基线图本文中的脚本在python3.8.3中进行了测试。让我们使用Seaborn内置的peng
2023-06-26

如何在Python中使用folium绘制地图

这期内容当中小编将会给大家带来有关如何在Python中使用folium绘制地图,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、简介folium 建立在 Python 生态系统的数据应用能力和 Leafl
2023-06-15

如何使用python的matplotlib绘制折线图

这篇文章主要介绍“如何使用python的matplotlib绘制折线图”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用python的matplotlib绘制折线图”文章能帮助大家解决问题。pl
2023-07-02

Python时间序列如何实现

这篇文章主要介绍“Python时间序列如何实现”,在日常操作中,相信很多人在Python时间序列如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python时间序列如何实现”的疑惑有所帮助!接下来,请跟
2023-07-05

Python如何使用pyecharts控件绘制图表

这篇文章主要介绍“Python如何使用pyecharts控件绘制图表”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python如何使用pyecharts控件绘制图表”文章能帮助大家解决问题。一、Ec
2023-06-30

如何用python绘制柱形图

这篇文章主要介绍了如何用python绘制柱形图的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何用python绘制柱形图文章都会有所收获,下面我们一起来看看吧。#柱形图import pandasimport n
2023-06-30

如何用python绘制散点图

本指南详细介绍了使用Python绘制散点图的步骤。它涵盖了从导入库到绘制图表并对其进行自定义的各个方面。通过图例、拟合线和自定义坐标轴等高级选项,用户可以增强散点图以更有效地展示数据。散点图是一种可视化工具,用于揭示不同变量之间的关系,在数据分析中广泛应用。
如何用python绘制散点图
2024-04-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录