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

簡單介紹
在分析股票或任何其他投資貨幣工具時(shí),時(shí)間序列分析是觀察變量如何隨時(shí)間變化的有效方法。這種類型的分析通常需要大量的數(shù)據(jù)點(diǎn)來確保一致性和可靠性。時(shí)間序列分析對于分析股票價(jià)格非常有效,尤其是對于自動(dòng)交易。本篇文章,主要是為初學(xué)者做一個(gè)簡單介紹與使用。
數(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
如下:

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

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

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

分析特定時(shí)間段
分析兩個(gè)特定日期之間的股票價(jià)格,可以如下實(shí)現(xiàn):
figure = px.line(data, x = data.index,
y = 'Close',
range_x = ['2021-01-31','2021-07-31'],
title = "時(shí)間序列分析")
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 = "時(shí)間序列分析(帶有按鈕和滑塊的燭臺(tái)圖)")
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ù)自己需要選擇時(shí)間范圍:

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

