《金融建?;A(chǔ)》課件第4章-結(jié)合金融場(chǎng)景演示Matplotlib 模塊編程_第1頁(yè)
《金融建模基礎(chǔ)》課件第4章-結(jié)合金融場(chǎng)景演示Matplotlib 模塊編程_第2頁(yè)
《金融建?;A(chǔ)》課件第4章-結(jié)合金融場(chǎng)景演示Matplotlib 模塊編程_第3頁(yè)
《金融建?;A(chǔ)》課件第4章-結(jié)合金融場(chǎng)景演示Matplotlib 模塊編程_第4頁(yè)
《金融建模基礎(chǔ)》課件第4章-結(jié)合金融場(chǎng)景演示Matplotlib 模塊編程_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

結(jié)合金融場(chǎng)景演示DESIGNED&WORDPRESSALLBYALONICMatplotlib模塊編程目錄CONTENTS4.1

基本函數(shù)4.2

曲線圖4.3

直方圖4.4

條形圖4.5

散點(diǎn)圖4.6

餅圖4.7

雷達(dá)圖4.8K線圖4.9本章小結(jié)&拓展閱讀本章將討論應(yīng)用更加廣泛的Python可視化模塊—Matplotlib,該模塊是受到MATLAB的啟發(fā)而被創(chuàng)建的,并且是基于Python的開(kāi)源項(xiàng)目,旨在為Python用戶提供一個(gè)專業(yè)的數(shù)據(jù)繪圖工具包。同時(shí),金融領(lǐng)域常用的是該模塊的pyplot子模塊。4.1基本函數(shù)1介紹pyplot子模塊中的常用繪圖函數(shù)及其參數(shù),并且兼顧顏色、樣式和標(biāo)記等參數(shù)。本章導(dǎo)讀2討論運(yùn)用plot函數(shù)繪制單一曲線圖以及運(yùn)用subplot函數(shù)進(jìn)行多圖繪制。4比較直方圖與條形圖的差異,探究運(yùn)用bar函數(shù)繪制垂直條形圖、barh函數(shù)繪制水平條形圖以及繪制雙軸圖的技巧。5依次講解運(yùn)用scatter函數(shù)繪制散點(diǎn)圖、運(yùn)用pie函數(shù)繪制餅圖以及如何繪制出雷達(dá)圖的特定方法。6借助原先是Matplotlib的一個(gè)子模塊但目前已是獨(dú)立模塊的mplfinance,具體演示K線圖(蠟燭圖)的繪制技巧。4.1基本函數(shù)由于Matplotlib是第三方模塊,因此在調(diào)用之前需要導(dǎo)入模塊,并且查看相關(guān)的版本信息,具體的代碼如右:3探討運(yùn)用hist函數(shù)繪制單一樣本的直方圖和多個(gè)樣本的直方圖。點(diǎn)擊輸入標(biāo)題4.1基本函數(shù)點(diǎn)擊輸入標(biāo)題4.1基本函數(shù)在繪制圖形的過(guò)程中經(jīng)常需要選擇不同的顏色,因此pyplot子模塊也有一些常用的顏色參數(shù)可供選擇,具體的參數(shù)如表4-2所示。點(diǎn)擊輸入標(biāo)題4.2曲線圖2.6.4節(jié)介紹過(guò)針對(duì)住房按揭貸款,根據(jù)等額本息還款規(guī)則,可以計(jì)算得到每月還款的金額以及每月還款金額中包含的本金與利息。下面就通過(guò)繪制曲線圖將相關(guān)的每月還款金額進(jìn)行可視化。4.2.1單一曲線圖從圖4-1中可以非常清晰地看到,在等額本息還款規(guī)則下,借款人每月償還的本金金額是逐月遞增的,每月償還的利息金額則是逐月遞減的。此外,通過(guò)目測(cè)可以發(fā)現(xiàn),在貸款還款靠近第200個(gè)月(約第16年)時(shí),每月償還的本金與利息金額是最接近的。點(diǎn)擊輸入標(biāo)題4.2曲線圖通過(guò)模擬不同的貸款利率,即利率在[3%,7%]區(qū)間進(jìn)行等差取值,計(jì)算對(duì)應(yīng)的每月償還金額,并且將結(jié)果進(jìn)行可視化(見(jiàn)圖4-2),具體的代碼如下:從圖4-2可以明顯看到,貸款利率與每月償還金額之間呈現(xiàn)一種線性的遞增關(guān)系。當(dāng)貸款利率達(dá)到7%時(shí),每月償還金額超過(guò)了5.25萬(wàn)元;相反,當(dāng)貸款利率下降至3%時(shí),每月償還金額低于3.5萬(wàn)元。點(diǎn)擊輸入標(biāo)題4.2曲線圖前面的例4-1中,在繪制圖形時(shí),將多條曲線放置在一張圖中;但有時(shí)候,在涉及多個(gè)變量時(shí),為了更加清晰地展示不同變量的趨勢(shì)特征,往往需要繪制多張圖并且每張圖以子圖形式顯示和排布,這時(shí)就需要運(yùn)用subplot函數(shù)。下面以深證成指作為對(duì)象進(jìn)行演示。4.2.2多圖繪制需要提醒的是直接將Excel格式的文件導(dǎo)入并創(chuàng)建以日期作為行索引的數(shù)據(jù)框時(shí),行索引通常是object格式(字符串格式)。為了能夠?qū)崿F(xiàn)pyplot子模塊的可視化效果最優(yōu),需要將行索引的object格式轉(zhuǎn)換為Datetime格式(時(shí)間戳格式),可以運(yùn)用pandas的DatetimeIndex函數(shù)實(shí)現(xiàn)轉(zhuǎn)換,該函數(shù)在本書(shū)后面的其他相關(guān)示例中也會(huì)使用到。右面是具體的代碼演示:對(duì)比圖4-3中的4張子圖,不難發(fā)現(xiàn)深證成指的4種價(jià)格在走勢(shì)上存在很強(qiáng)的同步性,并且僅憑借目測(cè)是較難辨別出差異的。點(diǎn)擊輸入標(biāo)題4.3直方圖直方圖(histogram),也稱為柱狀圖,是變量的樣本數(shù)據(jù)分布的圖形展示,主要用于估計(jì)變量的概率分布,最早由卡爾·皮爾遜(KarlPearson)引入。目前,直方圖被廣泛運(yùn)用于金融統(tǒng)計(jì)和量化分析。繪制直方圖的第一步就是將變量的全部樣本數(shù)據(jù)按照不同的區(qū)間范圍劃分成若干個(gè)組,組的個(gè)數(shù)被稱為組數(shù),而每一組兩個(gè)端點(diǎn)的距離就是組距。直方圖的橫坐標(biāo)表示變量的樣本數(shù)據(jù)的連續(xù)可取數(shù)值,縱坐標(biāo)表示頻數(shù),每個(gè)矩形(柱子)的高度代表對(duì)應(yīng)的頻數(shù),寬度代表組距;此外,間隔的矩形必須相鄰,并且通常每個(gè)矩形具有相同的寬度,矩形的個(gè)數(shù)就等于組數(shù)。繪制直方圖將運(yùn)用到hist函數(shù)4.3.1單一樣本的直方圖這里需要再次強(qiáng)調(diào)的是,正如2.5.3節(jié)的例2-32中提到的,由于是隨機(jī)抽樣,因此不同組抽樣所得到的結(jié)果之間會(huì)存在一定的差異。圖4-4與讀者自行編程所得到的圖形之間會(huì)存在比較細(xì)微的差異。點(diǎn)擊輸入標(biāo)題4.3直方圖此外,有時(shí)為了更加形象地展示并且比較若干組樣本值的分布情況,也會(huì)將不同組的樣本值放置在一張直方圖中進(jìn)行對(duì)比和展示,展示方式有兩種:一是堆疊(stacked)展示,即在直方圖中,不同組的樣本值堆疊在一起;二是并排展示,即在直方圖中,不同組的樣本值并排放置。下面就以上證綜指和深證成指作為對(duì)象進(jìn)行演示。4.3.2多個(gè)樣本的直方圖1.堆疊展示從圖4-5中可以看到,在堆疊展示的直方圖中,第1組數(shù)據(jù)(上證綜指)在下方,第2組數(shù)據(jù)(深證成指)在上方。通過(guò)目測(cè)可以發(fā)現(xiàn),無(wú)論是上證綜指還是深證成指,日漲跌幅數(shù)據(jù)都集中處于[4%,4%]?區(qū)間。同時(shí),最大的日跌幅在?8%附近,而最大的日漲幅則未能超過(guò)6%。點(diǎn)擊輸入標(biāo)題4.3直方圖此外,有時(shí)為了更加形象地展示并且比較若干組樣本值的分布情況,也會(huì)將不同組的樣本值放置在一張直方圖中進(jìn)行對(duì)比和展示,展示方式有兩種:一是堆疊(stacked)展示,即在直方圖中,不同組的樣本值堆疊在一起;二是并排展示,即在直方圖中,不同組的樣本值并排放置。下面就以上證綜指和深證成指作為對(duì)象進(jìn)行演示。4.3.2多個(gè)樣本的直方圖2.并排展示圖4-6所示是以并排方式展示的直方圖,圖中相鄰的兩個(gè)矩形均來(lái)自不同的數(shù)據(jù)組,因此可以很方便地觀察并比較不同數(shù)據(jù)組的分布情況。通過(guò)目測(cè)可以發(fā)現(xiàn),在日漲跌幅為0附近,上證綜指的樣本數(shù)據(jù)量明顯多于深證成指,同時(shí)伴隨著日漲跌幅逐漸遠(yuǎn)離0,深證成指的樣本數(shù)據(jù)量多于上證綜指。因此,相比上證綜指,深證成指的樣本數(shù)據(jù)在分布上更加離散,這也說(shuō)明深證成指的風(fēng)險(xiǎn)會(huì)更高。點(diǎn)擊輸入標(biāo)題4.4條形圖在金融市場(chǎng)中,比較不同金融資產(chǎn)的收益率、對(duì)比不同時(shí)期的交易量通常需要用條形圖(barchart)。條形圖是用相同寬度條形圖案的高度或長(zhǎng)短表示數(shù)據(jù)大小。條形圖可以分為垂直條形圖和水平條形圖兩類。其中,垂直條形圖也稱為柱形圖(columnchart)。然而,直方圖與垂直條形圖很容易混淆。表4-6列出了直方圖與垂直條形圖的異同。4.4.1垂直條形圖圖4-7通過(guò)圖4-7就可以非常直觀地對(duì)比同一個(gè)交易日、不同股票的漲跌幅情況以及不同交易日、同一只股票的漲跌幅情況。比如,在2020年5月25日,在這4只股票中,上汽集團(tuán)表現(xiàn)最好,中國(guó)衛(wèi)星則表現(xiàn)最差;針對(duì)中國(guó)軟件,在4個(gè)交易日中,5月26日的表現(xiàn)最好,5月25日的表現(xiàn)最差。點(diǎn)擊輸入標(biāo)題4.4條形圖有時(shí)為了更好地比較不同股票在不同交易日的漲跌幅情況,可以將若干個(gè)交易日的漲跌幅放置在一張水平條形圖中進(jìn)行集中展示。4.4.2水平條形圖4.4.3綜合條形圖與折線圖的雙軸圖在金融領(lǐng)域中,會(huì)經(jīng)??吹酵瑫r(shí)繪制條形圖與折線圖的雙軸圖。其中,條形圖往往用于描述變量的金額,并且對(duì)應(yīng)左側(cè)的y軸;折線圖則用于刻畫(huà)變量的變化情況(如增長(zhǎng)率),并且對(duì)應(yīng)右側(cè)的y軸。這類圖也稱為雙y軸圖。繪制雙y軸圖需要運(yùn)用以下的兩個(gè)函數(shù):一是通過(guò)subplots函數(shù)創(chuàng)建一個(gè)包含figure(圖案)、axes(軸域)對(duì)象的元組;二是通過(guò)twinx函數(shù)創(chuàng)建一個(gè)右側(cè)縱坐標(biāo)(右側(cè)y軸),進(jìn)而用于繪制雙y軸圖。下面,以廣義貨幣供應(yīng)量M2作為對(duì)象進(jìn)行演示。下面,用垂直條形圖刻畫(huà)M2的每月余額變量,用折線圖刻畫(huà)M2的每月同比增長(zhǎng)率變量,并將垂直條形圖和折線圖放置在一張雙y軸圖中(見(jiàn)圖4-9),具體的代碼如下:點(diǎn)擊輸入標(biāo)題4.4條形圖圖4-9中左側(cè)的y軸對(duì)應(yīng)M2每月余額的刻度,右側(cè)的y軸對(duì)應(yīng)M2每月同比增長(zhǎng)率的刻度。此外,從圖4-9中不難發(fā)現(xiàn),我國(guó)廣義貨幣供應(yīng)量M2每月余額基本是逐月增長(zhǎng)的,并且相比2019年,2020年M2每月同比增長(zhǎng)率明顯提高。點(diǎn)擊輸入標(biāo)題4.5散點(diǎn)圖金融分析的起點(diǎn)通常是考察兩個(gè)或多個(gè)不同變量之間是否具有線性關(guān)系,通過(guò)繪制出兩個(gè)變量的散點(diǎn)圖(scatterplot)進(jìn)行目測(cè)是判斷線性關(guān)系非常便捷、有效的方法。散點(diǎn)圖就是將兩個(gè)變量的樣本值顯示為一組點(diǎn),樣本值由點(diǎn)在圖中的位置表示。散點(diǎn)圖常用于識(shí)別兩個(gè)變量之間的線性相關(guān)性或用于觀察它們的關(guān)系,從而發(fā)現(xiàn)某種趨勢(shì),比如線性關(guān)系、指數(shù)關(guān)系等。同時(shí),散點(diǎn)圖對(duì)于查找異常值或理解數(shù)據(jù)分布有一定的幫助。如果圖中的散點(diǎn)越向一條直線靠攏,就說(shuō)明兩個(gè)變量之間的線性相關(guān)性越高,反之則越低。繪制散點(diǎn)圖需要運(yùn)用scatter函數(shù)。下面以A股市場(chǎng)的兩只銀行股票作為示例進(jìn)行演示。【例4-9】分析2016年至2020年期間中國(guó)工商銀行(簡(jiǎn)稱“工商銀行”)與中國(guó)建設(shè)銀行(簡(jiǎn)稱“建設(shè)銀行”)這兩只A股股票的周漲跌幅。表4-9列出了部分?jǐn)?shù)據(jù)。圖4-10印證了前面運(yùn)用相關(guān)系數(shù)推測(cè)出來(lái)的結(jié)果,也就是工商銀行與建設(shè)銀行的周漲跌幅基本處于一條直線的附近。但是需要注意,相關(guān)關(guān)系絕對(duì)不等同于因果關(guān)系。因?yàn)?,相關(guān)關(guān)系僅僅表示兩個(gè)變量的同時(shí)變化,但是因果關(guān)系則是指一個(gè)變量的變化會(huì)導(dǎo)致另一個(gè)變量的變化。以圖4-10為例,雖然可以認(rèn)為工商銀行與建設(shè)銀行之間存在著線性相關(guān)關(guān)系,但是無(wú)法推測(cè)出這兩只股票的漲跌幅之間是否存在因果關(guān)系,也就是僅僅從散點(diǎn)圖中無(wú)法判斷工商銀行的漲跌是否會(huì)導(dǎo)致建設(shè)銀行的漲跌,相反也無(wú)法判斷建設(shè)銀行的漲跌是否會(huì)導(dǎo)致工商銀行的漲跌。所以,散點(diǎn)圖只是一種初步的數(shù)據(jù)分析工具,僅能直觀地觀察兩個(gè)變量之間是否存在相關(guān)關(guān)系,如果需要進(jìn)一步確認(rèn)變量之間是否存在因果關(guān)系,還必須借助其他的統(tǒng)計(jì)分析工具。點(diǎn)擊輸入標(biāo)題4.6餅圖在金融領(lǐng)域中,經(jīng)常需要計(jì)算變量的若干個(gè)樣本值占總樣本值的比重,并且希望將這些比重進(jìn)行圖形化展示,這時(shí)通過(guò)餅圖(piechart)就能對(duì)各組成部分所占的比重進(jìn)行直觀描述。餅圖是一種圓形的統(tǒng)計(jì)圖,它被劃分成不同的切片以表示比重。餅圖的運(yùn)用通常歸功于蘇格蘭工程師、經(jīng)濟(jì)學(xué)家威廉·普萊費(fèi)爾(WilliamPlayfair),他在1801年最先提出并運(yùn)用餅圖進(jìn)行統(tǒng)計(jì)分析。繪制餅圖需要運(yùn)用pie函數(shù)。下面以國(guó)際貨幣基金組織特別提款權(quán)中不同幣種的權(quán)重作為示例演示餅圖的繪制。點(diǎn)擊輸入標(biāo)題4.7雷達(dá)圖雷達(dá)圖(radarchart)也稱為戴布拉圖、網(wǎng)絡(luò)圖、蜘蛛圖、星圖,是以二維圖的形式在從中心點(diǎn)開(kāi)始向外延伸的數(shù)軸上表示3個(gè)或更多個(gè)變量數(shù)據(jù)的圖形。此類圖形最早由日本企業(yè)界發(fā)明并運(yùn)用于綜合評(píng)估企業(yè)的財(cái)務(wù)狀況,由于繪制得到的圖形酷似雷達(dá),因此取名雷達(dá)圖。運(yùn)用Matplotlib繪制雷達(dá)圖時(shí),通常需要分兩個(gè)步驟完成。(1)輸入準(zhǔn)備好的參數(shù)數(shù)據(jù),除了指標(biāo)和排名的數(shù)據(jù)以外,還需要運(yùn)用NumPy的linspace函數(shù)將整個(gè)圓形按照需要顯示的指標(biāo)數(shù)量進(jìn)行均勻切分,比如需要顯示4個(gè)指標(biāo),則將圓形均勻切分為4個(gè)部分;同時(shí),運(yùn)用NumPy的另一個(gè)函數(shù)concatenate將相關(guān)數(shù)組進(jìn)行首尾拼接以實(shí)現(xiàn)圖形的閉合。(2)運(yùn)用Matplotlib的子模塊pyplot的polar函數(shù)和thetagrids函數(shù)完成繪制。其中,polar函數(shù)用于繪制雷達(dá)圖的坐標(biāo)系,thetagrids函數(shù)則用于輸入圖形中涉及的指標(biāo)名稱。從圖4-12可以清楚地看到,越靠近雷達(dá)圖的圓心位置,就代表指標(biāo)的排名越高;相反,越遠(yuǎn)離雷達(dá)圖的圓心位置,就代表指標(biāo)的排名越低。點(diǎn)擊輸入標(biāo)題4.8K線圖在證券、期貨等投資領(lǐng)域,經(jīng)常運(yùn)用K線圖來(lái)表示價(jià)格的走勢(shì)情況。K線圖最早起源于日本德川幕府時(shí)代(公元1603年—1867年),是當(dāng)時(shí)日本米市商人用于記錄米市的行情與價(jià)格波動(dòng)的圖形。由于所繪制出來(lái)的圖表形狀非常類似于一根根蠟燭,因此K線圖也被稱為蠟燭圖(candlestickchart)。在繪制K線時(shí),都是圍繞著開(kāi)盤(pán)價(jià)、最高價(jià)、最低價(jià)、收盤(pán)價(jià)這4個(gè)數(shù)據(jù)展開(kāi)的,反映大勢(shì)的狀況和價(jià)格信息。當(dāng)收盤(pán)價(jià)高于開(kāi)盤(pán)價(jià)時(shí),K線就稱為陽(yáng)線;相反,當(dāng)收盤(pán)價(jià)低于開(kāi)盤(pán)價(jià)時(shí),K線就稱為陰線。在我國(guó)A股市場(chǎng),用紅色表示陽(yáng)線,綠色表示陰線。需要注意的是,在歐美金融市場(chǎng),通常用綠色表示陽(yáng)線,紅色表示陰線,這與A股市場(chǎng)的習(xí)慣恰好相反。此外,將每日的K線放在一張圖上,就能得到日K線圖,根據(jù)同樣的邏輯也可以繪制出周K線圖、月K線圖等。由于課件使用的是Matplotlib3.2.2,因此在繪制K線圖時(shí)需要運(yùn)用mplfinance??紤]到該模塊需要另行安裝,同時(shí)本書(shū)是在Anaconda環(huán)境中運(yùn)行Python的,所以通過(guò)打開(kāi)AnacondaPrompt,并且輸入如下命令就能在線安裝該模塊的最新版本:如果希望在線安裝其他版本,比如0.12.6a0版本可以輸入如下命令:同樣,由于mplfinance是第三方模塊,因此需要導(dǎo)入模塊并且查看版本信息,具體的代碼如下:點(diǎn)擊輸入標(biāo)題4.8K線圖下面,以上證綜指為對(duì)象并運(yùn)用mplfinance演示繪制K線圖的過(guò)程。4.9本章小結(jié)&拓展閱讀數(shù)據(jù)可視化是金融分析與風(fēng)險(xiǎn)管理的有機(jī)組成部分。在Python中,常用的可視化工具就是Matplotlib的子模塊pyplot。本章首先介紹了pyplot子模塊中的常用繪圖函數(shù)與參數(shù);在此基礎(chǔ)上,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論