Python 數據分析系列(5)以 Pandas Matplotlib 製作 SP500 走勢圖

2021年1月6日 星期三

這次我們會利用上次從 Quandl 得出的數據,然後再透過幾個 Pandas 常用 Function,最後製作 2018年 SP500 走勢圖。

準備

我們都會先導入 pandas 套件,縮寫爲 pd,同時導入 matplotlib.pyplot,縮寫爲 plt。

import pandas as pd
import matplotlib.pyplot as plt

由於我們的數據通常都是一個二維的表格,所以先來理解 Pandas 的 DataFrame。

Pandas 入門

data = [
 [1,2,3],
 [4,5,6]
]

df = pd.DataFrame(data=data, columns=['a', 'b', 'c'])

df

要做一個 DataFrame,我們可以利用 pd.DataFrame。這裏我們定義我們需要用的資料爲一個二維 Array,例如最簡單的 123,456。

你應該會看到 Colab (Jupter) 輸出上面的 Table。

做好一個 DataFrame 之後,我們可以利用 df.info() 來獲取表格的大概。這時,我們可以看到這個 DataFrame 的 Index 是一個 RangeIndex,從 0 到 1。而我們上一次用的是 DatetimeIndex。

我們還可以利用 df.describe() 來獲取每個欄位的 count mean sd min max 等統計數據。

選取行

我們可以對 df 進行降維打擊,變成一維的 Series。很簡單,使用 df.loc 就可以了。這裏我們選取第一個 Row,也就是上面自動做好的 0

df.loc[0]

利用 Quandl 數據

比如說我們想獲取 SP500 2018年的數據,我們可以利用下面的 Code 來得出一個全新的 DataFrame:

df['2018']

我們也可以利用 describe function 來得到中位數,平均數等統計數字。

輸出圖表

如果你直接使用 df.plot 的話,那麼 pandas 就會自動把 x 和 y 軸的數據寫上去,比如說 x 軸是日期,y 軸是數值。

美化折線圖表

由於 df.plot 是使用 matplotlib,所以我們可以利用 matplotlib 來加上各種樣式。

具體 Code 爲:

plt.style.use('fivethirtyeight')

fig, ax = plt.subplots()

df['2018'].plot(ax=ax)

ax.legend(labels=['SP500'])

plt.xlabel('Month')

plt.ylabel('Price')

water_mark_text = 'Kepler Finance'
ax.text(0.5, 0.5, water_mark_text, transform=ax.transAxes,
    fontsize=40, color='gray', alpha=0.5,
    ha='center', va='center', rotation='0')

fig.tight_layout()

fig.show()

保存圖片

要保存圖片的話,用 fig.savefig 就可以了:

fig.savefig('SP500.png'dpi=100)

後記

pandas 能夠處理數據,而 matplotlib 則可以輸出各種圖表,結合起來就非常好用。這裏先預告一下,Kepler Finance Bot 將會在 2021年輸出各種價值投資的數據圖表,敬請期待。

留言

Leave a Comment

必要欄位爲*。留言所填寫的電子郵件地址不會公開。

Kepler Finance

當 Python 遇上 Finance,它們將會帶來超乎想像的威力。

訂閱 Kepler Finance 最新文章

昔日手記

免責聲明

本博客純屬個人意見或經驗分享,無論在任何情況下,不應被視為投資建議,也不構成要約、招攬、邀請、誘使、建議或推薦。投資(機)者應注意投資涉及風險。股票價格可升可跌,有時可能會非常波動,甚至變成毫無價值。買賣證券未必一定能夠賺取利潤,反而可能會招致損失。