使用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进阶教程之函数参数的多种传递方法
Aug 30 Python
python修改操作系统时间的方法
May 18 Python
Python基于Tkinter实现的记事本实例
Jun 17 Python
通过5个知识点轻松搞定Python的作用域
Sep 09 Python
Python 数据结构之堆栈实例代码
Jan 22 Python
使用Python绘制图表大全总结
Feb 11 Python
Python 字符串换行的多种方式
Sep 06 Python
对pandas的层次索引与取值的新方法详解
Nov 06 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
Apr 11 Python
python关于调用函数外的变量实例
Dec 26 Python
安装并免费使用Pycharm专业版(学生/教师)
Sep 24 Python
基于Python绘制子图及子图刻度的变换等的问题
May 23 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自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
解析php中call_user_func_array的作用
2013/06/07 PHP
Laravel 在views中加载公共页面的实现代码
2019/10/22 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
js用Date对象处理时间实现思路及代码
2013/01/31 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
一个JavaScript获取元素当前高度的实例
2014/10/29 Javascript
javascript实现单击和双击并存的方法
2014/12/13 Javascript
jQuery中$.click()无效问题分析
2015/01/29 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
jQuery实现自动输入email、时间和域名的方法
2016/08/24 Javascript
AngularJS 单元测试(二)详解
2016/09/21 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
jQuery接受后台传递的List的实例详解
2017/08/02 jQuery
十分钟带你快速了解React16新特性
2017/11/10 Javascript
axios post提交formdata的实例
2018/03/16 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
vue中created和mounted的区别浅析
2019/08/13 Javascript
webpack是如何实现模块化加载的方法
2019/11/06 Javascript
vue中实现动态生成二维码的方法
2020/02/21 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
初步解析Python中的yield函数的用法
2015/04/03 Python
让Django支持Sql Server作后端数据库的方法
2018/05/29 Python
Python实现图片拼接的代码
2018/07/02 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
python障碍式期权定价公式
2019/07/19 Python
关于pymysql模块的使用以及代码详解
2019/09/01 Python
很酷的HTML5电子书翻页动画特效
2016/02/25 HTML / CSS
html5如何在Canvas中实现自定义路径动画示例
2017/09/18 HTML / CSS
2014年质检员工作总结
2014/11/18 职场文书
2015年班干部工作总结
2015/04/29 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
python3美化表格数据输出结果的实现代码
2021/04/14 Python