使用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中xrange和range的区别
May 13 Python
Python的类实例属性访问规则探讨
Jan 30 Python
Python中operator模块的操作符使用示例总结
Jun 28 Python
Python算法应用实战之栈详解
Feb 04 Python
用python找出那些被“标记”的照片
Apr 20 Python
基于使用paramiko执行远程linux主机命令(详解)
Oct 16 Python
python shell根据ip获取主机名代码示例
Nov 25 Python
Python3实现发送QQ邮件功能(附件)
Dec 23 Python
python async with和async for的使用
Jun 20 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
Jun 21 Python
python获取引用对象的个数方式
Dec 20 Python
Django实现celery定时任务过程解析
Apr 21 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
星际中的相关伤害
2020/03/04 星际争霸
咖啡与牛奶
2021/03/03 冲泡冲煮
php下通过伪造http头破解防盗链的代码
2010/07/03 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
2013/06/28 PHP
浅析php创建者模式
2014/11/25 PHP
3种php生成唯一id的方法
2015/11/23 PHP
PHP MVC框架路由学习笔记
2016/03/02 PHP
Yii列表定义与使用分页方法小结(3种方法)
2016/07/15 PHP
Code:findPosX 和 findPosY
2006/12/20 Javascript
iis6+javascript Add an Extension File
2007/06/13 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
html5+javascript制作简易画板附图
2014/04/25 Javascript
AngularJS  自定义指令详解及实例代码
2016/09/14 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
详解vue组件基础
2018/05/04 Javascript
react-router 路由切换动画的实现示例
2018/12/03 Javascript
解决angular 使用原生拖拽页面卡顿及表单控件输入延迟问题
2020/04/21 Javascript
python中单下划线_的常见用法总结
2018/07/10 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
2018/12/29 Python
在Pycharm中执行scrapy命令的方法
2019/01/16 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
pytorch 查看cuda 版本方式
2020/06/23 Python
Python爬取某平台短视频的方法
2021/02/08 Python
英国著名国际平价时尚男装品牌:Topman
2016/08/27 全球购物
Wallis官网:英国女装零售商
2020/01/21 全球购物
描述一下JVM加载class文件的原理机制
2013/12/08 面试题
高中打架检讨书
2014/02/13 职场文书
护士岗前培训自我评鉴
2014/02/28 职场文书
小学生手册家长评语
2014/04/16 职场文书
医院信息公开实施方案
2014/05/09 职场文书
反对形式主义、官僚主义、享乐主义和奢靡之风整改措施
2014/09/17 职场文书
钳工实训报告总结
2014/11/04 职场文书
个人年终总结开头
2015/03/06 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
你知道哪几种MYSQL的连接查询
2021/06/03 MySQL