使用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的Tornado框架实现一个简单的WebQQ机器人
Apr 24 Python
使用Python对Access读写操作
Mar 30 Python
Python整型运算之布尔型、标准整型、长整型操作示例
Jul 21 Python
关于Django外键赋值问题详解
Aug 13 Python
import的本质解析
Oct 30 Python
Flask解决跨域的问题示例代码
Feb 12 Python
Python实现查看系统启动项功能示例
May 10 Python
python使用Plotly绘图工具绘制柱状图
Apr 01 Python
python3 自动打印出最新版本执行的mysql2redis实例
Apr 09 Python
解决jupyter notebook显示不全出现框框或者乱码问题
Apr 09 Python
Python importlib动态导入模块实现代码
Apr 16 Python
python基础之//、/与%的区别详解
Jun 10 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
非洲第一个咖啡超凡杯大赛承办国—卢旺达的咖啡怎么样
2021/03/03 咖啡文化
PHP在线生成二维码(google api)的实现代码详解
2013/06/04 PHP
php中的buffer缓冲区用法分析
2019/05/31 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
js 事件处理函数间的Event物件是否全等
2011/04/08 Javascript
JQuery中阻止事件冒泡几种方式及其区别介绍
2014/01/15 Javascript
jQuery的context属性用法实例
2014/12/27 Javascript
自动化测试读写64位操作系统的注册表
2016/08/15 Javascript
浅谈jQuery中hide和fadeOut的区别 show和fadeIn的区别
2016/08/18 Javascript
ES6中Math对象新增的方法实例详解
2017/04/25 Javascript
微信小程序支付之c#后台实现方法
2017/10/19 Javascript
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
Angular 封装并发布组件的方法示例
2018/04/19 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
IE9 elementUI文件上传的问题解决
2018/10/17 Javascript
小程序云开发之用户注册登录
2019/05/18 Javascript
浅谈webpack 四个核心概念之Entry
2019/06/12 Javascript
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
2019/11/26 Javascript
jquery实现上传文件进度条
2020/03/26 jQuery
js实现删除json中指定的元素
2020/09/22 Javascript
vue data有值,但是页面{{}} 取不到值的解决
2020/11/09 Javascript
Python中分数的相关使用教程
2015/03/30 Python
python下如何查询CS反恐精英的服务器信息
2017/01/17 Python
python将list转为matrix的方法
2018/12/12 Python
python实战串口助手_解决8串口多个发送的问题
2019/06/12 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
CSS3实现同时执行倾斜和旋转的动画效果
2016/10/27 HTML / CSS
详解如何使用CSS3中的结构伪类选择器和伪元素选择器
2020/01/06 HTML / CSS
写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)
2014/09/05 面试题
Solaris操作系统的线程机制
2015/07/28 面试题
办公文员的工作岗位职责
2013/11/12 职场文书
网络教育自我鉴定
2014/02/04 职场文书
校本课程教学计划
2015/01/19 职场文书
父亲节寄语大全
2015/02/27 职场文书
小学生大队委竞选稿
2015/11/20 职场文书
想要创业,那么你做好准备了吗?
2019/07/01 职场文书