使用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监控网卡流量并使用graphite绘图的示例
Apr 27 Python
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
Apr 25 Python
python requests 测试代理ip是否生效
Jul 25 Python
Django中使用第三方登录的示例代码
Aug 20 Python
Python 类的魔法属性用法实例分析
Nov 21 Python
python线程定时器Timer实现原理解析
Nov 30 Python
Django Haystack 全文检索与关键词高亮的实现
Feb 17 Python
python下对hsv颜色空间进行量化操作
Jun 04 Python
Python pip 常用命令汇总
Oct 19 Python
python pygame 愤怒的小鸟游戏示例代码
Feb 25 Python
Python如何识别银行卡卡号?
Jun 10 Python
使用python求解迷宫问题的三种实现方法
Mar 17 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
codeigniter教程之多文件上传使用示例
2014/02/11 PHP
php判断两个浮点数是否相等的方法
2015/03/14 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
Laravel框架实现抢红包功能示例
2019/10/31 PHP
javascript[js]获取url参数的代码
2007/10/17 Javascript
JavaScript的Cookies
2008/01/16 Javascript
获取焦点时,利用js定时器设定时间执行动作
2010/04/02 Javascript
Grid得到选择行数据的方法总结
2011/01/17 Javascript
动态读取JSON解析键值对的方法
2014/06/03 Javascript
深入理解javascript原型链和继承
2014/09/23 Javascript
AngularJS入门教程之Hello World!
2014/12/06 Javascript
jQuery使用addClass()方法给元素添加多个class样式
2015/03/26 Javascript
javascript实现文字无缝滚动
2016/12/27 Javascript
用jQuery实现优酷首页轮播图
2017/01/09 Javascript
JS验证input输入框(字母,数字,符号,中文)
2017/03/23 Javascript
Vue关于数据绑定出错解决办法
2017/05/15 Javascript
使用JavaScript实现在页面中显示距离2017年中秋节的天数
2017/09/26 Javascript
解决ie img标签内存泄漏的问题
2017/10/13 Javascript
node+koa2+mysql+bootstrap搭建一个前端论坛
2018/05/06 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
Vue实现购物小球抛物线的方法实例
2020/11/22 Vue.js
[01:44]Ti10举办地公布
2019/08/25 DOTA
Python Dataframe 指定多列去重、求差集的方法
2018/07/10 Python
Python数据集切分实例
2018/12/08 Python
Python中typing模块与类型注解的使用方法
2019/08/05 Python
python根据多个文件名批量查找文件
2019/08/13 Python
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
司机岗位职责
2013/11/15 职场文书
志愿者活动总结
2014/04/28 职场文书
婚礼秀策划方案
2014/05/19 职场文书
新兵入伍心得体会
2014/09/04 职场文书
区域销售经理岗位职责
2015/04/02 职场文书
2015年度环卫处工作总结
2015/07/24 职场文书
Pytorch 实现变量类型转换
2021/05/17 Python
Java实现二分搜索树的示例代码
2022/03/17 Java/Android