使用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 相关文章推荐
python3.3使用tkinter开发猜数字游戏示例
Mar 14 Python
python实现class对象转换成json/字典的方法
Mar 11 Python
python中函数总结之装饰器闭包详解
Jun 12 Python
Python中functools模块的常用函数解析
Jun 30 Python
python cx_Oracle模块的安装和使用详细介绍
Feb 13 Python
Django中使用极验Geetest滑动验证码过程解析
Jul 31 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
Aug 28 Python
使用Pytorch来拟合函数方式
Jan 14 Python
python中count函数简单的实例讲解
Feb 06 Python
Python3爬虫中关于中文分词的详解
Jul 29 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
Dec 04 Python
Python实现8种常用抽样方法
Jun 27 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读取文件内容后清空文件示例代码
2014/03/18 PHP
Linux系统中为php添加pcntl扩展
2016/08/28 PHP
PHP目录操作实例总结
2016/09/27 PHP
Yii 2.0自带的验证码使用经验分享
2017/06/19 PHP
Laravel框架控制器的middleware中间件用法分析
2019/09/30 PHP
事件冒泡是什么如何用jquery阻止事件冒泡
2013/03/20 Javascript
JavaScript对象和字串之间的转换实例探讨
2013/04/21 Javascript
js中复制行和删除行的操作实例
2013/06/25 Javascript
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
2013/12/17 Javascript
JS方法调用括号的问题探讨
2014/01/24 Javascript
JavaScript中的对象的extensible属性介绍
2014/12/30 Javascript
jQuery简单几行代码实现tab切换
2015/03/10 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
浅谈js中StringBuffer类的实现方法及使用
2016/09/02 Javascript
微信小程序中时间戳和日期的相互转换问题
2018/07/09 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
2019/11/01 jQuery
原生JS封装拖动验证滑块的实现代码示例
2020/06/01 Javascript
[41:05]Serenity vs Pain 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python中List.count()方法的使用教程
2015/05/20 Python
python实现简单tftp(基于udp协议)
2018/07/30 Python
使用Python实现一个栈判断括号是否平衡
2018/08/23 Python
对pandas通过索引提取dataframe的行方法详解
2019/02/01 Python
Python发展史及网络爬虫
2019/06/19 Python
DjangoWeb使用Datatable进行后端分页的实现
2020/05/18 Python
python导入库的具体方法
2020/06/18 Python
Python 实现PS滤镜中的径向模糊特效
2020/12/03 Python
银行自荐信范文
2013/10/07 职场文书
营业员演讲稿
2013/12/30 职场文书
幼儿园教师培训制度
2014/01/16 职场文书
毕业生自荐信格式
2014/03/07 职场文书
离婚协议书范本2014
2014/10/27 职场文书
员工工作能力评语
2014/12/31 职场文书
谢师宴邀请函
2015/02/02 职场文书
计划生育责任书
2015/05/09 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书