1. 程式人生 > >用Python獲取股價資料,通過Matplotlib視覺化

用Python獲取股價資料,通過Matplotlib視覺化

股價資料是典型的一種時間序列資料,而Python非常擅長獲取處理時間序列資料。特別是,Python庫的pandas原本就是為了處理金融資料而開發的,為時間序列資料的分析準備了許多強大的功能。



 這次做的東西非常簡單,就是下面的2點。


 1. 從Yahoo! Finance獲取阿里巴巴的股價資料


 2. 取得的股價資料作為時間序列資料plot顯示


股價資料的取得



首先在開頭,如下匯入必要的庫。

import pandas as pd
from pandas import Series, DataFrame
import numpy as np

import matplotlib.pyplot as plt

使用pandas標準功能的DataReader的話可以從Yahoo或Google等簡單地取得股價。

from pandas_datareader import data, wb
from datetime import datetime

end = datetime.now()
start = datetime(end.year - 1, end.month, end.day)
alibaba = data.DataReader('BABA', 'yahoo', start, end)


這裡需要注意的是,這裡從Yahoo! Finance獲取的資料,不是東京證交所的資訊,而是紐約證交所的美國股市的資訊。
 上述的程式碼裡end和start決定獲取從何時開始到何時結束的資料。End設成now(現在),start設成從現在開始1年前。總之取得1年的股價資料。取得的資料儲存到"alibaba"。


股價資料的視覺化



 Matplotlib是使用Python進行繪圖裡非常方便的庫。這次 plot使用的資料是 Adj Close欄的資料。這是所說的已調整收盤價。


 如下僅僅需要兩行寫就可以簡單的將股價作為時間序列資料畫出來。
alibaba['Adj Close'].plot(legend=True, figsize=(10,4))
plt.show()



結束語



 這次通過使用Python完成了股價資料的取得和視覺化這樣非常簡單的任務。現在,Python作為金融・經濟資料的實際分析工具具備了強大的能力,非常引人注目。根據Python實施資料分析,使用人工智慧在系統交易中賺大錢也是可能的。下次打算寫一下如何比較多家企業的股價,分析其相關關係的過程。