使用python創(chuàng)建股票的時間序列可視化分析
簡單介紹
在分析股票或任何其他投資貨幣工具時,時間序列分析是觀察變量如何隨時間變化的有效方法。這種類型的分析通常需要大量的數(shù)據(jù)點來確保一致性和可靠性。時間序列分析對于分析股票價格非常有效,尤其是對于自動交易。本篇文章,主要是為初學者做一個簡單介紹與使用。
數(shù)據(jù)獲取
我們收集雅虎財經的數(shù)據(jù),直接使用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
如下:
繪制可視化線圖
顯示了變量價格隨時間的變化,下圖是亞馬遜的收盤價,將光標放在數(shù)據(jù)點的確切日期上可以查看收盤價。
import plotly.express as px figure = px.line(data, x = data.index, y = "Close", title = "Time Series Analysis (Line Plot)") figure.show()
如下:
繪制蠟太圖
燭臺圖在時間序列分析中非常有用,因為它以醒目的方式呈現(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 = "時間學列分析" ) figure.show()
如下:
分析特定時間段
分析兩個特定日期之間的股票價格,可以如下實現(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()
可以點擊按鈕,根據(jù)自己需要選擇時間范圍:
去試試吧,先介紹到這里了,補充一下,獲取雅虎數(shù)據(jù),可能要開梯子,不讓你獲取會失敗。
總結
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!
相關文章
idea2020手動安裝python插件的實現(xiàn)方法
這篇文章主要介紹了idea2020手動安裝python插件的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07解決python3.5 正常安裝 卻不能直接使用Tkinter包的問題
今天小編就為大家分享一篇解決python3.5 正常安裝 卻不能直接使用Tkinter包的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02python爬蟲指南之xpath實例解析(附實戰(zhàn))
在進行網頁抓取的時候,分析定位html節(jié)點是獲取抓取信息的關鍵,目前我用的是lxml模塊,下面這篇文章主要給大家介紹了關于python爬蟲指南之xpath實例解析的相關資料,需要的朋友可以參考下2022-01-01Python+SQLAlchemy輕松實現(xiàn)管理數(shù)據(jù)庫
QLAlchemy是一個強大的ORM(對象關系映射)庫,它允許您通過Python代碼與關系型數(shù)據(jù)庫進行交互,本文我們將學習如何使用Python和SQLAlchemy庫來輕松管理數(shù)據(jù)庫,需要的可以參考下2023-05-05Python腳本實現(xiàn)12306火車票查詢系統(tǒng)
本文給大家分享我使用python3實現(xiàn)的12306火車票查詢系統(tǒng),小編分步驟給大家介紹的非常詳細,感興趣的朋友一起看看吧2016-09-09