使用python創(chuàng)建股票的時間序列可視化分析

簡單介紹
在分析股票或任何其他投資貨幣工具時,時間序列分析是觀察變量如何隨時間變化的有效方法。這種類型的分析通常需要大量的數(shù)據(jù)點(diǎn)來確保一致性和可靠性。時間序列分析對于分析股票價格非常有效,尤其是對于自動交易。本篇文章,主要是為初學(xué)者做一個簡單介紹與使用。
數(shù)據(jù)獲取
我們收集雅虎財(cái)經(jīng)的數(shù)據(jù),直接使用python的庫,安裝如下:
!pip install yfinance !pip install plotly !pip install paddlefsl
安裝好后,我們來獲取亞馬遜的股票,當(dāng)然你也可以獲取別的公司股票:
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
如下:

繪制可視化線圖
顯示了變量價格隨時間的變化,下圖是亞馬遜的收盤價,將光標(biāo)放在數(shù)據(jù)點(diǎn)的確切日期上可以查看收盤價。
import plotly.express as px
figure = px.line(data, x = data.index,
y = "Close",
title = "Time Series Analysis (Line Plot)")
figure.show()
如下:

繪制蠟太圖
燭臺圖在時間序列分析中非常有用,因?yàn)樗孕涯康姆绞匠尸F(xiàn)開盤價、最高價、最低價和收盤價。紅線表示價格下跌,綠線表示價格上漲
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()
如下:

條形圖
上面兩個圖主要是便于觀察上漲下跌,條形圖更加比較適合觀察長期上漲下跌
figure = px.bar(data, x = data.index,
y = "Close",
title = "時間學(xué)列分析" )
figure.show()
如下:

分析特定時間段
分析兩個特定日期之間的股票價格,可以如下實(shí)現(xiàn):
figure = px.line(data, x = data.index,
y = 'Close',
range_x = ['2021-01-31','2021-07-31'],
title = "時間序列分析")
figure.show()
如下:

交互式可視化
代碼如下:
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()
可以點(diǎn)擊按鈕,根據(jù)自己需要選擇時間范圍:

去試試吧,先介紹到這里了,補(bǔ)充一下,獲取雅虎數(shù)據(jù),可能要開梯子,不讓你獲取會失敗。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Python實(shí)現(xiàn)批量上傳本地maven庫到nexus
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)批量上傳本地maven庫到nexus,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,需要的小伙伴可以參考下2024-01-01
Python實(shí)現(xiàn)數(shù)字圖像處理染色體計(jì)數(shù)示例
這篇文章主要為大家介紹了Python實(shí)現(xiàn)數(shù)字圖像處理染色體計(jì)數(shù)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
使用Python的OpenCV模塊識別滑動驗(yàn)證碼的缺口(推薦)
這篇文章主要介紹了使用Python的OpenCV模塊識別滑動驗(yàn)證碼的缺口,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-05-05
django 連接數(shù)據(jù)庫 sqlite的例子
今天小編就為大家分享一篇django 連接數(shù)據(jù)庫 sqlite的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
Python使用ftplib實(shí)現(xiàn)簡易FTP客戶端的方法
這篇文章主要介紹了Python使用ftplib實(shí)現(xiàn)簡易FTP客戶端的方法,實(shí)例分析了ftplib模塊相關(guān)設(shè)置與使用技巧,需要的朋友可以參考下2015-06-06
Python實(shí)現(xiàn)獲取內(nèi)網(wǎng)IP地址的方法總結(jié)
這篇文章主要為大家詳細(xì)介紹了五種利用Python語言實(shí)現(xiàn)獲取內(nèi)網(wǎng)IP地址的方法,文中的示例代碼講解詳細(xì),具有一定的參考價值,需要的可以了解一下2023-03-03

