使用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设计模式之单例模式实例
Apr 26 Python
使用Python脚本对Linux服务器进行监控的教程
Apr 02 Python
Python中实现参数类型检查的简单方法
Apr 21 Python
python求解水仙花数的方法
May 11 Python
Python实现的FTP通信客户端与服务器端功能示例
Mar 28 Python
实例讲解python中的协程
Oct 08 Python
python实现微信小程序用户登录、模板推送
Aug 28 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
Oct 14 Python
pytorch进行上采样的种类实例
Feb 18 Python
200行python代码实现贪吃蛇游戏
Apr 24 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
Dec 14 Python
使用Django实现商城验证码模块的方法
Jun 01 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
php xml文件操作代码(一)
2009/03/20 PHP
UCenter中的一个可逆加密函数authcode函数代码
2010/07/20 PHP
php实现mysql连接池效果实现代码
2018/01/25 PHP
PHP7内核之Reference详解
2019/03/14 PHP
使用composer 安装 laravel框架的方法图文详解
2019/08/02 PHP
加载 Javascript 最佳实践
2011/10/30 Javascript
JavaScript 浏览器对象模型BOM使用介绍
2015/04/13 Javascript
一看就懂:jsonp详解
2015/06/01 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
2017/02/19 Javascript
jquery实现左右滑动式轮播图
2017/03/02 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
2017/03/23 jQuery
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
2017/09/15 Javascript
ES6解构赋值实例详解
2017/10/31 Javascript
js判断数组是否包含某个字符串变量的实例
2017/11/24 Javascript
vue-cli2.0转3.0之项目搭建的详细步骤
2018/12/11 Javascript
Vue2 添加数据可视化支持的方法步骤
2019/01/02 Javascript
学习RxJS之JavaScript框架Cycle.js
2019/06/17 Javascript
js+springMVC 提交数组数据到后台的实例
2019/09/21 Javascript
javascript浅层克隆、深度克隆对比及实例解析
2020/02/09 Javascript
Vue-cli4 配置 element-ui 按需引入操作
2020/09/11 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
[02:26]2018DOTA2亚洲邀请赛赛前采访-Newbee篇
2018/04/03 DOTA
Python操作Access数据库基本步骤分析
2016/09/19 Python
Python中你应该知道的一些内置函数
2017/03/31 Python
Python实现的桶排序算法示例
2017/11/29 Python
基于随机梯度下降的矩阵分解推荐算法(python)
2018/08/31 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
2020/07/27 Python
Bowflex美国官方网站:高级家庭健身器材
2017/12/22 全球购物
大学生创业策划书
2014/02/02 职场文书
买卖协议书范本
2014/04/21 职场文书
教师见习期自我鉴定
2014/04/28 职场文书
2014最新党员违纪检讨书
2014/10/12 职场文书
预备党员转正材料
2014/12/19 职场文书
小学三八妇女节活动总结
2015/02/06 职场文书
不负正版帝国之名 《重返帝国》引领SLG手游制作新的标杆
2022/04/07 其他游戏
JDK8中String的intern()方法实例详细解读
2022/09/23 Java/Android