使用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 相关文章推荐
以Flask为例讲解Python的框架的使用方法
Apr 29 Python
pyqt5的QWebEngineView 使用模板的方法
Aug 18 Python
浅谈numpy生成数组的零值问题
Nov 12 Python
pycharm运行和调试不显示结果的解决方法
Nov 30 Python
python使用knn实现特征向量分类
Dec 26 Python
钉钉群自定义机器人消息Python封装的实例
Feb 20 Python
python图的深度优先和广度优先算法实例分析
Oct 26 Python
将自己的数据集制作成TFRecord格式教程
Feb 17 Python
pytorch进行上采样的种类实例
Feb 18 Python
python数据预处理 :数据抽样解析
Feb 24 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
Feb 03 Python
Python 如何将integer转化为罗马数(3999以内)
Jun 05 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
根德YB400的电路分析
2021/03/02 无线电
新浪新闻小偷
2006/10/09 PHP
PHPShop存在多个安全漏洞
2006/10/09 PHP
PHP中的命名空间详细介绍
2015/07/02 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
2017/08/15 PHP
jquery里的each使用方法详解
2010/12/22 Javascript
面向对象的Javascript之二(接口实现介绍)
2012/01/27 Javascript
HTML Color Picker(js拾色器效果)
2013/08/27 Javascript
Android中的jQuery:AQuery简介
2014/05/06 Javascript
js 获取浏览器版本以此来调整CSS的样式
2014/06/03 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
2016/05/20 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
2018/08/11 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
2019/06/11 Javascript
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
JSON获取属性值方法代码实例
2020/06/30 Javascript
python爬虫入门教程之糗百图片爬虫代码分享
2014/09/02 Python
python去除空格和换行符的实现方法(推荐)
2017/01/04 Python
简述:我为什么选择Python而不是Matlab和R语言
2017/11/14 Python
Python实现的计算器功能示例
2018/04/26 Python
浅析Python pandas模块输出每行中间省略号问题
2018/07/03 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
浅谈Python 参数与变量
2020/06/20 Python
无需压缩软件,用python帮你操作压缩包
2020/08/17 Python
如何在scrapy中集成selenium爬取网页的方法
2020/11/18 Python
内部类的定义、种类以及优点
2013/10/16 面试题
银行委托书范本
2014/04/04 职场文书
餐饮商业计划书范文
2014/04/29 职场文书
厂区绿化方案
2014/05/08 职场文书
公司活动总结怎么写
2014/06/25 职场文书
学生会感恩节活动方案
2014/10/11 职场文书
环卫个人总结
2015/03/03 职场文书
2015教师个人德育工作总结
2015/07/22 职场文书
装修公司管理制度
2015/08/05 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
python爬虫框架feapde的使用简介
2021/04/20 Python
V Rising 服务器搭建图文教程
2022/06/16 Servers