使用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库urllib与urllib2主要区别分析
Jul 13 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
Jul 06 Python
selenium2.0中常用的python函数汇总
Aug 05 Python
python两个_多个字典合并相加的实例代码
Dec 26 Python
Tensorflow 实现释放内存
Feb 03 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
Feb 07 Python
python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)
Mar 09 Python
python实现控制台输出彩色字体
Apr 05 Python
Django数据库迁移常见使用方法
Nov 12 Python
python 实现的截屏工具
May 08 Python
python可视化之颜色映射详解
Sep 15 Python
python中mongodb包操作数据库
Apr 19 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如何编写易读的代码
2007/07/10 PHP
PHP随机生成随机个数的字母组合示例
2014/01/14 PHP
jquery高效反选具体实现
2013/05/05 Javascript
ECMAScript 5严格模式(Strict Mode)介绍
2015/03/02 Javascript
使用ngView配合AngularJS应用实现动画效果的方法
2015/06/19 Javascript
DWR中各种java方法的调用
2016/05/04 Javascript
Vue集成Iframe页面的方法示例
2017/12/12 Javascript
React Native开发封装Toast与加载Loading组件示例
2018/09/08 Javascript
vue.js中proxyTable 转发请求的实现方法
2018/09/20 Javascript
基于 jQuery 实现键盘事件监听控件
2019/04/04 jQuery
python逐行读取文件内容的三种方法
2014/01/20 Python
用python登录Dr.com思路以及代码分享
2014/06/25 Python
python结合selenium获取XX省交通违章数据的实现思路及代码
2016/06/26 Python
Python 由字符串函数名得到对应的函数(实例讲解)
2017/08/10 Python
Python语言描述机器学习之Logistic回归算法
2017/12/21 Python
Python图像处理之简单画板实现方法示例
2018/08/30 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
python3.4 将16进制转成字符串的实例
2019/06/12 Python
使用Matplotlib 绘制精美的数学图形例子
2019/12/13 Python
python实现简单的tcp 文件下载
2020/09/16 Python
python 动态绘制爱心的示例
2020/09/27 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
2021/01/25 Python
纯css3实现鼠标经过图片显示描述的动画效果
2014/09/01 HTML / CSS
戴尔美国官网:Dell
2016/08/31 全球购物
美国手机支架公司:PopSockets
2019/11/27 全球购物
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
应届大学生的推荐信
2013/11/20 职场文书
工商管理实习生自我鉴定范文
2013/12/18 职场文书
七年级政治教学反思
2014/02/03 职场文书
先进教师事迹材料
2014/12/16 职场文书
会计求职简历自我评价
2015/03/10 职场文书
离婚纠纷代理词
2015/05/23 职场文书
女儿满月酒致辞
2015/07/29 职场文书
接触艺术对孩子学习思维有益
2019/08/06 职场文书
深入理解go缓存库freecache的使用
2022/02/15 Golang
React四级菜单的实现
2022/04/08 Javascript