使用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实现删除文件但保留指定文件
Jun 21 Python
深入源码解析Python中的对象与类型
Dec 11 Python
Python中super函数的用法
Nov 17 Python
3个用于数据科学的顶级Python库
Sep 29 Python
PyCharm鼠标右键不显示Run unittest的解决方法
Nov 30 Python
Python设计模式之模板方法模式实例详解
Jan 17 Python
python爬虫租房信息在地图上显示的方法
May 13 Python
python实现得到当前登录用户信息的方法
Jun 21 Python
python实现拉普拉斯特征图降维示例
Nov 25 Python
Python实现Word表格转成Excel表格的示例代码
Apr 16 Python
Python使用Numpy模块读取文件并绘制图片
May 13 Python
用python绘制樱花树
Oct 09 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
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
PHP实现获取FLV文件的时间
2015/02/10 PHP
使用javascript创建快捷方式的简单实例
2013/08/09 Javascript
jQuery源码分析之jQuery中的循环技巧详解
2014/09/06 Javascript
jQuery中[attribute!=value]选择器用法实例
2014/12/31 Javascript
用JavaScript实现页面重定向功能的教程
2015/06/04 Javascript
JavaScript日期对象(Date)基本用法示例
2017/01/18 Javascript
js链表操作(实例讲解)
2017/08/29 Javascript
微信小程序之滚动视图容器的实现方法
2017/09/26 Javascript
Nodejs调用WebService的示例代码
2017/09/29 NodeJs
动态Axios的配置步骤详解
2018/01/12 Javascript
vuex 项目结构目录及一些简单配置介绍
2018/04/08 Javascript
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
浅谈Vue render函数在ElementUi中的应用
2018/09/06 Javascript
javascript实现计算指定范围内的质数示例
2018/12/29 Javascript
vue实现分页组件
2020/06/16 Javascript
JavaScript惰性载入函数实例分析
2019/03/27 Javascript
react基本安装与测试示例
2020/04/27 Javascript
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
2020/05/19 Javascript
js 获取扫码枪输入数据的方法
2020/06/10 Javascript
使用Kivy将python程序打包为apk文件
2017/07/29 Python
使用Python和xlwt向Excel文件中写入中文的实例
2018/04/21 Python
Python代码实现http/https代理服务器的脚本
2019/08/12 Python
Python操作多维数组输出和矩阵运算示例
2019/11/28 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
运动鞋、足球鞋和慕尼黑球衣:Sport Münzinger
2019/08/26 全球购物
类如何去实现接口
2013/12/19 面试题
系统管理员的职责包括那些?管理的对象是什么?
2016/09/20 面试题
委托书如何写
2014/08/30 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
公司财务部岗位职责
2015/04/14 职场文书
复试通知单模板
2015/04/24 职场文书
2015秋学期开学寄语
2015/05/28 职场文书
php去除数组中为0的元素的实例分析
2021/11/17 PHP
Pillow图像处理库安装及使用
2022/04/12 Python