使用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 相关文章推荐
100行Python代码实现自动抢火车票(附源码)
Jan 11 Python
详解python字节码
Feb 07 Python
Python爬虫实现(伪)球迷速成
Jun 10 Python
python 对类的成员函数开启线程的方法
Jan 22 Python
解决python执行不输出系统命令弹框的问题
Jun 24 Python
Django框架视图函数设计示例
Jul 29 Python
python 多进程并行编程 ProcessPoolExecutor的实现
Oct 11 Python
python3 实现函数写文件路径的正确方法
Nov 27 Python
Keras中的两种模型:Sequential和Model用法
Jun 27 Python
python3 re返回形式总结
Nov 20 Python
python 邮件检测工具mmpi的使用
Jan 04 Python
Python使用psutil库对系统数据进行采集监控的方法
Aug 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
cakephp打印sql语句的方法
2015/02/13 PHP
php中执行系统命令的方法
2015/03/21 PHP
WordPress中设置Post Type自定义文章类型的实例教程
2016/05/10 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
2016/11/25 PHP
JQuery团队打造的javascript单元测试工具QUnit介绍
2010/02/26 Javascript
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
2011/10/16 Javascript
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
使用JavaScript 实现各种跨域的方法
2013/05/08 Javascript
JS简单的轮播的图片滚动实例
2013/06/17 Javascript
高效的获取当前元素是父元素的第几个子元素
2013/10/15 Javascript
JS简单实现登陆验证附效果图
2013/11/19 Javascript
ExtJS4中的requires使用方法示例介绍
2013/12/03 Javascript
jQuery对于显示和隐藏等常用状态的判断方法
2014/12/13 Javascript
JavaScript数据绑定实现一个简单的 MVVM 库
2016/04/08 Javascript
EasyUI加载完Html内容样式渲染完成后显示
2016/07/25 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
2016/12/23 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
vue2.0 better-scroll 实现移动端滑动的示例代码
2018/01/25 Javascript
JS实现访问DOM对象指定节点的方法示例
2018/04/04 Javascript
axios向后台传递数组作为参数的方法
2018/08/11 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
python控制台显示时钟的示例
2014/02/24 Python
python提示No module named images的解决方法
2014/09/29 Python
Python中Numpy ndarray的使用详解
2019/05/24 Python
python IDLE 背景以及字体大小的修改方法
2019/07/12 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
python sorted函数原理解析及练习
2020/02/10 Python
在python中使用pyspark读写Hive数据操作
2020/06/06 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
2021/01/15 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
荷兰皇家航空公司官方网站:KLM Royal Dutch Airlines
2017/12/07 全球购物
旷课检讨书2000字
2014/01/14 职场文书
班组长竞聘书
2014/03/31 职场文书
股权收购意向书
2014/04/01 职场文书
社会体育专业大学生职业生涯规划书
2014/09/17 职场文书
iPhone13 Pro外观确定,升级4800万镜头,4月20日发新品
2021/04/15 数码科技