使用python创建股票的时间序列可视化分析


Posted in Python onMarch 03, 2022

使用python创建股票的时间序列可视化分析

简单介绍

在分析股票或任何其他投资货币工具时,时间序列分析是观察变量如何随时间变化的有效方法。这种类型的分析通常需要大量的数据点来确保一致性和可靠性。时间序列分析对于分析股票价格非常有效,尤其是对于自动交易。本篇文章,主要是为初学者做一个简单介绍与使用。

数据获取

我们收集雅虎财经的数据,直接使用python的库,安装如下:

!pip install yfinance
!pip install plotly
!pip install paddlefsl

安装好后,我们来获取亚马逊的股票,当然你也可以获取别的公司股票:

import pandas as pd
import yfinance as yf
import datetime
from datetime import date, timedelta
today = date.today()
d1 = today.strftime("%Y-%m-%d")
end_date = d1
d2 = date.today() - timedelta(days=720)
d2 = d2.strftime("%Y-%m-%d")
start_date = d2
data = yf.download('AMZN', 
                      start=start_date, 
                      end=end_date, 
                      progress=False)
print(data.head())
# data

如下:

使用python创建股票的时间序列可视化分析

绘制可视化线图

显示了变量价格随时间的变化,下图是亚马逊的收盘价,将光标放在数据点的确切日期上可以查看收盘价。

import plotly.express as px
figure = px.line(data, x = data.index, 
                 y = "Close", 
                 title = "Time Series Analysis (Line Plot)")
figure.show()

如下:

使用python创建股票的时间序列可视化分析

绘制蜡太图

烛台图在时间序列分析中非常有用,因为它以醒目的方式呈现开盘价、最高价、最低价和收盘价。红线表示价格下跌,绿线表示价格上涨

import plotly.graph_objects as go
figure = go.Figure(data=[go.Candlestick(x = data.index,
                                        open = data["Open"], 
                                        high = data["High"],
                                        low = data["Low"], 
                                        close = data["Close"])])
figure.update_layout(title = "时间序列蜡台图", 
                     xaxis_rangeslider_visible = False)
figure.show()

如下:

使用python创建股票的时间序列可视化分析

条形图

上面两个图主要是便于观察上涨下跌,条形图更加比较适合观察长期上涨下跌

figure = px.bar(data, x = data.index, 
                y = "Close", 
                title = "时间学列分析" )
figure.show()

如下:

使用python创建股票的时间序列可视化分析

分析特定时间段

分析两个特定日期之间的股票价格,可以如下实现:

figure = px.line(data, x = data.index, 
                 y = 'Close', 
                 range_x = ['2021-01-31','2021-07-31'], 
                 title = "时间序列分析")
figure.show()

如下:

使用python创建股票的时间序列可视化分析

交互式可视化

代码如下:

figure = go.Figure(data = [go.Candlestick(x = data.index,
                                        open = data["Open"], 
                                        high = data["High"],
                                        low = data["Low"], 
                                        close = data["Close"])])
figure.update_layout(title = "时间序列分析(带有按钮和滑块的烛台图)")
figure.update_xaxes(
    rangeslider_visible = True,
    rangeselector = dict(
        buttons = list([
            dict(count = 1, label = "1m", step = "month", stepmode = "backward"),
            dict(count = 6, label = "6m", step = "month", stepmode = "backward"),
            dict(count = 1, label = "YTD", step = "year", stepmode = "todate"),
            dict(count = 1, label = "1y", step = "year", stepmode = "backward"),
            dict(step = "all")
        ])
    )
)
figure.show()

可以点击按钮,根据自己需要选择时间范围:

使用python创建股票的时间序列可视化分析

去试试吧,先介绍到这里了,补充一下,获取雅虎数据,可能要开梯子,不让你获取会失败。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注三水点靠木的更多内容!   

Python 相关文章推荐
python在指定目录下查找gif文件的方法
May 04 Python
快速排序的算法思想及Python版快速排序的实现示例
Jul 02 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
Jun 20 Python
python 获取一个值在某个区间的指定倍数的值方法
Nov 12 Python
Python实现的矩阵转置与矩阵相乘运算示例
Mar 26 Python
利用Python库Scapy解析pcap文件的方法
Jul 23 Python
Python编程中类与类的关系详解
Aug 08 Python
详解一种用django_cache实现分布式锁的方式
Sep 01 Python
分享8点超级有用的Python编程建议(推荐)
Oct 13 Python
python画蝴蝶曲线图的实例
Nov 21 Python
Python tcp传输代码实例解析
Mar 18 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
Apr 16 Python
Python Pandas读取Excel日期数据的异常处理方法
pytorch中的torch.nn.Conv2d()函数图文详解
Feb 28 #Python
python3中apply函数和lambda函数的使用详解
Feb 28 #Python
你需要掌握的20个Python常用技巧
Feb 28 #Python
python opencv将多个图放在一个窗口的实例详解
pandas中关于apply+lambda的应用
Feb 28 #Python
Python中的datetime包与time包包和模块详情
Feb 28 #Python
You might like
phpMyadmin 用户权限中英对照
2010/04/02 PHP
php array的学习笔记
2012/05/10 PHP
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
用mysql_fetch_array()获取当前行数据的方法详解
2013/06/05 PHP
destoon整合UCenter图文教程
2014/06/21 PHP
php中adodbzip类实例
2014/12/08 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
2016/03/20 PHP
用JS实现一个页面多个css样式实现
2008/05/29 Javascript
Jquery动态更改一张位图的src与Attr的使用
2013/07/31 Javascript
使用jQuery判断IE浏览器版本的代码
2014/06/14 Javascript
了解Javascript的模块化开发
2015/03/02 Javascript
JS实现网页标题随机显示名人名言的方法
2015/11/03 Javascript
详解自定义ajax支持跨域组件封装
2018/02/08 Javascript
详解js静态检查工具eslint配置文件
2018/11/23 Javascript
详解一次Vue低版本安卓白屏问题的解决过程
2019/05/30 Javascript
基于Express框架使用POST传递Form数据
2019/08/10 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
2019/11/07 jQuery
[03:23]我的刀塔你不可能这么可爱 第一期金萌萌的故事
2014/06/20 DOTA
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python利用QQ邮箱发送邮件的实现方法(分享)
2017/06/09 Python
Python模拟用户登录验证
2017/09/11 Python
python 日期操作类代码
2018/05/05 Python
python实现LBP方法提取图像纹理特征实现分类的步骤
2019/07/11 Python
python实现遍历文件夹图片并重命名
2020/03/23 Python
Java和Javasciprt的区别
2012/09/02 面试题
毕业生求职简历中的自我评价
2013/10/18 职场文书
大学生实习自我鉴定
2013/12/11 职场文书
产品销售员岗位职责
2013/12/18 职场文书
浙大毕业生自荐信
2014/01/26 职场文书
计划生育工作汇报
2014/10/28 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
活动宣传稿范文
2015/07/23 职场文书
珍爱生命主题班会
2015/08/13 职场文书
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android
SQL Server中的游标介绍
2022/05/20 SQL Server
GoFrame框架数据校验之校验结果Error接口对象
2022/06/21 Golang