您好,登錄后才能下訂單哦!
這篇文章主要介紹“Python怎么實現折線圖顯示股票數據”,在日常操作中,相信很多人在Python怎么實現折線圖顯示股票數據問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python怎么實現折線圖顯示股票數據”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
準備數據
可視化數據、審查數據
處理數據
根據ACF、PACF定階
擬合ARIMA模型
預測
# -*- coding: utf-8 -*- """ Spyder Editor This is a temporary script file. """ import pandas as pd import pandas_datareader import datetime import matplotlib.pylab as plt from matplotlib.pylab import style from statsmodels.tsa.arima_model import ARIMA from statsmodels.graphics.tsaplots import plot_acf, plot_pacf style.use('ggplot') # 設置圖片顯示的主題樣式 # 解決matplotlib顯示中文問題 plt.rcParams['font.sans-serif'] = ['SimHei'] # 指定默認字體 plt.rcParams['axes.unicode_minus'] = False # 解決保存圖像是負號'-'顯示為方塊的問題 def run_main(): """ 主函數 """ # 1. 準備數據 # 指定股票分析開始日期 start_date = datetime.datetime(2009, 1, 1) # 指定股票分析截止日期 end_date = datetime.datetime(2019, 4, 1) # 股票代碼 stock_code = '600519.SS' # 滬市貴州茅臺 stock_df = pandas_datareader.data.DataReader( stock_code, 'yahoo', start_date, end_date ) # 預覽數據 print(stock_df.head()) # 2. 可視化數據 plt.plot(stock_df['Close']) plt.title('股票每日收盤價') plt.show() # 按周重采樣 stock_s = stock_df['Close'].resample('W-MON').mean() stock_train = stock_s['2014':'2018'] plt.plot(stock_train) plt.title('股票周收盤價均值') plt.show() # 分析 ACF acf = plot_acf(stock_train, lags=20) plt.title("股票指數的 ACF") acf.show() # 分析 PACF pacf = plot_pacf(stock_train, lags=20) plt.title("股票指數的 PACF") pacf.show() # 3. 處理數據,平穩化數據 # 這里只是簡單第做了一節差分,還有其他平穩化時間序列的方法 stock_diff = stock_train.diff() diff = stock_diff.dropna() print(diff.head()) print(diff.dtypes) plt.figure() plt.plot(diff) plt.title('一階差分') plt.show() acf_diff = plot_acf(diff, lags=20) plt.title("一階差分的 ACF") acf_diff.show() pacf_diff = plot_pacf(diff, lags=20) plt.title("一階差分的 PACF") pacf_diff.show() # 4. 根據ACF和PACF定階并建立模型 model = ARIMA(stock_train, order=(1, 1, 1), freq='W-MON') # 擬合模型 arima_result = model.fit() print(arima_result.summary()) # 5. 預測 pred_vals = arima_result.predict(start=str('2019-01'),end=str('2019-03'), dynamic=False, typ='levels') print(pred_vals) # 6. 可視化預測結果 stock_forcast = pd.concat([stock_s, pred_vals], axis=1, keys=['original', 'predicted']) plt.figure() plt.plot(stock_forcast) plt.title('真實值vs預測值') plt.savefig('./stock_pred.png', format='png') plt.show() if __name__ == '__main__': run_main()
到此,關于“Python怎么實現折線圖顯示股票數據”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。