使用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实现通过文件路径获取文件hash值的方法
Apr 29 Python
Python使用try except处理程序异常的三种常用方法分析
Sep 05 Python
对Python中DataFrame选择某列值为XX的行实例详解
Jan 29 Python
浅谈python标准库--functools.partial
Mar 13 Python
python3使用matplotlib绘制散点图
Mar 19 Python
Python基础之函数的定义与使用示例
Mar 23 Python
Python学习笔记之lambda表达式用法详解
Aug 08 Python
python elasticsearch环境搭建详解
Sep 02 Python
python 协程中的迭代器,生成器原理及应用实例详解
Oct 28 Python
Python eval函数原理及用法解析
Nov 14 Python
Python爬虫之App爬虫视频下载的实现
Dec 08 Python
Python3+Flask安装使用教程详解
Feb 16 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
广播爱好者需要了解的天线知识
2021/03/01 无线电
收集的PHP中与数组相关的函数
2007/03/22 PHP
php中实现简单的ACL 完结篇
2011/09/07 PHP
ThinkPHP多表联合查询的常用方法
2020/03/24 PHP
php随机生成数字字母组合的方法
2015/03/18 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
2016/02/15 PHP
PHP7多线程搭建教程
2017/04/21 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
JS模块与命名空间的介绍
2013/03/22 Javascript
Ajax同步与异步传输的示例代码
2013/11/21 Javascript
Javascript动画的实现原理浅析
2015/03/02 Javascript
jQuery原生的动画效果
2015/07/10 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
2017/08/15 Javascript
Bootstrap-table使用footerFormatter做统计列功能
2018/09/07 Javascript
VueJS 组件参数名命名与组件属性转化问题
2018/12/03 Javascript
Vue框架TypeScript装饰器使用指南小结
2019/02/18 Javascript
微信小程序 select 下拉框组件功能
2019/09/09 Javascript
vue语法自动转typescript(解放双手)
2019/09/18 Javascript
python中urllib模块用法实例详解
2014/11/19 Python
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
2018/10/29 Python
利用ctypes获取numpy数组的指针方法
2019/02/12 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
2019/08/09 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
2020/02/07 Python
django 取消csrf限制的实例
2020/03/13 Python
基于Python绘制美观动态圆环图、饼图
2020/06/03 Python
Python3爬虫关于代理池的维护详解
2020/07/30 Python
深入探究HTML5的History API
2015/07/09 HTML / CSS
吃透移动端 Html5 响应式布局
2019/12/16 HTML / CSS
社区维稳工作方案
2014/06/06 职场文书
驾驶员安全责任书
2014/07/22 职场文书
单位作风建设自查报告
2014/10/23 职场文书
SpringBoot读取Resource下文件的4种方法
2021/07/02 Java/Android
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫