使用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框架学习笔记(一)安装篇(windows安装与centos安装)
Jun 25 Python
Python去除列表中重复元素的方法
Mar 20 Python
Python实现批量下载文件
May 17 Python
python通过get,post方式发送http请求和接收http响应的方法
May 26 Python
Python基于有道实现英汉字典功能
Jul 25 Python
python 查找字符串是否存在实例详解
Jan 20 Python
python中模块查找的原理与方法详解
Aug 11 Python
Python3 加密(hashlib和hmac)模块的实现
Nov 23 Python
python smtplib模块自动收发邮件功能(二)
May 22 Python
python读取文件名并改名字的实例
Jan 07 Python
python全栈知识点总结
Jul 01 Python
深入了解Python在HDA中的应用
Sep 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
php实现保存submit内容之后禁止刷新
2014/03/19 PHP
php 无限分类 树形数据格式化代码
2016/10/11 PHP
php如何计算两坐标点之间的距离
2018/12/29 PHP
YII框架关联查询操作示例
2019/04/29 PHP
php+lottery.js实现九宫格抽奖功能
2019/07/21 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
laravel入门知识点整理
2020/09/15 PHP
JS打印gridview实现原理及代码
2013/02/05 Javascript
js 实现日期灵活格式化的小例子
2013/07/14 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
一个通过script自定义属性传递配置参数的方法
2014/09/15 Javascript
如何通过js实现图片预览功能【附实例代码】
2016/03/30 Javascript
js类式继承与原型式继承详解
2016/04/07 Javascript
js图片切换具体实现代码
2016/10/13 Javascript
浅谈js算法和流程控制
2016/12/29 Javascript
VUE axios发送跨域请求需要注意的问题
2017/07/06 Javascript
JavaScript多态与封装实例分析
2018/07/27 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
详解vue中router-link标签所必备了解的属性
2019/04/15 Javascript
[06:33]3.19 DOTA2发布会 海涛、冷冷、2009见证希望
2014/03/21 DOTA
Python实现二分查找与bisect模块详解
2017/01/13 Python
python使用for循环计算0-100的整数的和方法
2019/02/01 Python
python中count函数简单的实例讲解
2020/02/06 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
Python中remove漏删和索引越界问题的解决
2020/03/18 Python
Python实现删除某列中含有空值的行的示例代码
2020/07/20 Python
TripAdvisor土耳其网站:全球知名旅行社区,真实旅客评论
2017/04/17 全球购物
澳大利亚礼品卡商店:Gift Card Store
2019/06/24 全球购物
学习保证书范文
2014/04/30 职场文书
刘公岛导游词
2015/02/05 职场文书
MySQL中日期型单行函数代码详解
2021/06/21 MySQL
关于PostgreSQL JSONB的匹配和交集问题
2021/09/14 PostgreSQL
springboot用户数据修改的详细实现
2022/04/06 Java/Android
MySQL数据库如何查看表占用空间大小
2022/06/10 MySQL
Windows server 2003卸载和安装IIS的图文教程
2022/07/15 Servers