本支影片簡單分享如何繪製直方圖,包含資料的讀入、直方圖的繪製、百分比的換算、顏色的變換、區間的設置、累積圖的繪製、橫向直方圖的轉換及上下界的選取等等。今天,我們會採用股票的單日最大報酬當作案例,用直方圖來尋找適合當沖的標的。文末提供程式檔,歡迎有興趣的讀者一起練習。
直方圖的繪製
引入繪圖模組
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
直方圖的繪製
df['G_pct'].hist(bins=20,density=True,range=(0,0.03),color='skyblue',cumulative=True, ,orientation='horizontal')
其中,
bins: 給定數值,要分成幾群。也可以給定很多個客製化區間,讓每個區間的長度都不一樣。
density: 將縱軸座標由次數改成機率,使所有條狀面積相加為1 (True)
color: 顏色選擇 (給定顏色)
range: 自訂想要呈現的區間 (給定區間)
cumulative: 累計直方圖(True)
orientation: 可調整直向的直方圖(預設)或橫向的直方圖(‘horizontal’)
重疊直方圖
重點:利用alpha控制色彩透明度,並記得用label標上標籤。
df['G_pct'].hist(bins=20,density=True,color='skyblue',label='GOOG',alpha=0.5)
df['M_pct'].hist(bins=20,density=True,color='pink',label='MSFT',alpha=0.5)
plt.legend()
plt.show()
直方圖的應用
直方圖是一種對數據分佈的圖形表示,應用相當廣泛。比方說我們要看台北的房價分佈、小學五年級男生的身高分佈、志工的年齡分佈等等。
今天,我們以股票的單日報酬分佈,來檢視適合當沖的股票。值得一提的是,由於每筆交易其實我們都是要付出交易手續費的,因此,對於超級低價股而言,我們要考慮的不僅僅是單日報酬率,更應同時呈現單日報酬值(收盤減開盤)的直方圖,以推估扣掉成本後方向作對的報酬率。另外,資料期間的選取也是很重要的,畢竟類股輪動在台股上已非新聞,建議資料期間盡量不要取太長,最多就一年內就已經很多了,畢竟太久以前的資料很難代表現在的情況,因為股性是會隨著時間而改變的。當然,這個”單日漲跌幅”也可以照個人交易需求做不同的改變,比方說做隔日沖得可以看兩天,做更短頻率的可以縮減為每小時或每30分鐘之類的。
今天,我們學會了直方圖的繪製。下載你有興趣的標的,一起動手做做看吧!
程式檔案,歡迎於此下載。