|
在上一講的基礎(chǔ)上,我們會對金融數(shù)據(jù)可視化做更進一步的探索。 subplot2grid設(shè)置子圖網(wǎng)絡(luò) 上一講中提到了通過add_subplot來增加子圖,這種方法可以設(shè)置子圖網(wǎng)格和子圖在網(wǎng)格中的所在位置。在本講中,我們會介紹一種更加靈活地設(shè)置網(wǎng)格的方法——subplot2grid,該方法可以設(shè)置各子圖所占的行列數(shù),其基本用法為: subplot2grid(shape, loc, rowspan, colspan, **kwargs) 其中:shape是網(wǎng)格形狀,loc是子圖所在位置,rowspan是子圖所占行數(shù),colspan是子圖所占列數(shù) candlestick_ohlc方法繪制K線圖 K線圖(蠟燭圖)是金融市場中常見的圖形,在matplotlib中可以通過candlestick_ohlc方法繪制,其基本參數(shù)和用法是: candlestick_ohlc(ax, quotes, width=0.2, colorup='k', colordown='r', alpha=1.0) 其中:參數(shù)ax為坐標(biāo)軸,width為bar的寬度,colorup是上漲時顯示的顏色,colordown是下跌時顯示的顏色。 quotes為包含時間(time)、開盤價(open)、最高價(high)、最低價(low)、收盤價(close)的序列,candlestick_ohlc方法只會讀取序列的前5個,因此可以傳入任意長度的序列。另外需要注意的是time必須是浮點類型,一般需要用matplotliab中的date2num方法進行格式轉(zhuǎn)換。 帶成成交量的K線圖繪制 運用上面的知識,我們可以開始K線圖的設(shè)置了。整個圖形分成兩個子圖,上面的子圖是K線,而下面的子圖是成交量柱狀圖。采用subplot2grid設(shè)置兩個子圖的位置:
以上表示K線圖占據(jù)上面3*4的網(wǎng)格,成交柱狀圖占下面1*4的網(wǎng)格。 采用candlestick_ohlc和bar方法分別進行畫圖,根據(jù)上一講的內(nèi)容對圖形的坐標(biāo)軸進行設(shè)置,在此不再重述。在畫完圖后,我們還需要對圖的樣式進行調(diào)整:
上面的代碼中,第一行是隱藏K線圖x軸的標(biāo)簽,第二行是隱藏K線圖y軸的第一個標(biāo)簽(該標(biāo)簽會與下面的子圖有重合),第三行是調(diào)整圖形的邊距并且使得兩個子圖之間無空隙。 完成上述操作后,就可以得到最終的圖形了。 后續(xù)的工作 為了讓K線圖與股票軟件中所看的一樣,還需要其他許多額外的工作:
以上這些可以作為本講的練習(xí),大家可以自己動手嘗試一下。本次講解涉及的完整代碼如下。 |
|
|