Matplotlib可視化教學(xué)講解課件_第1頁(yè)
Matplotlib可視化教學(xué)講解課件_第2頁(yè)
Matplotlib可視化教學(xué)講解課件_第3頁(yè)
Matplotlib可視化教學(xué)講解課件_第4頁(yè)
Matplotlib可視化教學(xué)講解課件_第5頁(yè)
已閱讀5頁(yè),還剩49頁(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)介

第9章Matplotlib可視化目錄

9.1Matplotlib簡(jiǎn)介與安裝9.1.1Matplotlib簡(jiǎn)介9.1.2Matplotlib安裝9.2基礎(chǔ)語(yǔ)法和常用設(shè)置9.2.1繪圖流程9.2.2布局設(shè)置9.2.3畫(huà)布創(chuàng)建9.2.4參數(shù)設(shè)置9.3基礎(chǔ)圖形繪制9.3.1折線圖9.3.2直方圖9.3.3餅狀圖9.3.4箱形圖9.3.5散點(diǎn)圖9.3.6三維圖第9章Matplotlib可視化1第9章Matplotlib可視化

Matplotlib的功能和MATLAB中畫(huà)圖的功能十分類似。MATLAB畫(huà)圖的流程相對(duì)復(fù)雜,而使用Python中的Matplotlib畫(huà)圖則非常方便。Matplotlib是Python中的一個(gè)包,主要用于繪制2D圖形(也可以繪制3D圖像),在數(shù)據(jù)分析領(lǐng)域占據(jù)很重要的地位。另外,它還具備豐富的擴(kuò)展性能,能實(shí)現(xiàn)更強(qiáng)大的功能。9.1Matplotlib簡(jiǎn)介與安裝9.1.1Matplotlib簡(jiǎn)介Matplotlib是Python中一個(gè)優(yōu)秀的數(shù)據(jù)可視化第三方庫(kù),有超過(guò)100種數(shù)據(jù)可視化顯示效果,它以各種硬拷貝格式和跨平臺(tái)的交互式環(huán)境生成出版質(zhì)量級(jí)別的圖形。通過(guò)Matplotlib,開(kāi)發(fā)者可以僅需要幾行代碼,便可以生成直方圖、餅狀圖、條形圖、散點(diǎn)圖等多種不同形式的繪圖。作為入門(mén)級(jí)別的一款可視化工具,Matplotlib具有如下特性:第9章Matplotlib可視化Matplotli29.1Matplotlib簡(jiǎn)介與安裝9.1.1Matplotlib簡(jiǎn)介

支持交互式和非交互式繪圖;

可將圖像保存成PNG、PS等多種圖像格式;

支持曲線(折線)圖、條形圖、柱狀圖、餅狀圖;

圖形可配置;

跨平臺(tái),支持Linux、Windows、MacOSX與Solaris;Matplotlib的繪圖函數(shù)與MATLAB的繪圖函數(shù)名字相似,遷移學(xué)習(xí)的成本比較低;

支持LaTeX的公式插入。

在Matplotlib中,有兩種不同的繪圖方法。9.1Matplotlib簡(jiǎn)介與安裝9.1.1Ma39.1Matplotlib簡(jiǎn)介與安裝9.1.1Matplotlib簡(jiǎn)介1.函數(shù)式繪圖

在matplotlib.pyplot中已經(jīng)封裝好大量的常用函數(shù),用戶可以直接調(diào)用函數(shù)進(jìn)行繪圖。我們經(jīng)常將matplotlib.pyplot取別名為plt。plt中主要定義以下兩類函數(shù)。

①操作函數(shù):對(duì)畫(huà)布、圖、子圖、坐標(biāo)軸、圖例、背景、網(wǎng)格等操作。

②繪圖函數(shù):折線圖、散點(diǎn)圖、條形圖、直方圖、餅狀圖等特定圖的繪制函數(shù)。

函數(shù)式繪圖適合于新手,無(wú)須了解內(nèi)部的對(duì)象問(wèn)題。它對(duì)操作性的要求不是很高,主要針對(duì)定制性不強(qiáng)的繪圖。常用函數(shù)如表9-1所示。9.1Matplotlib簡(jiǎn)介與安裝9.1.1M49.1Matplotlib簡(jiǎn)介與安裝9.1.1Matplotlib簡(jiǎn)介

表9-1常用函數(shù)繪圖函數(shù)操作函數(shù)bar():制作條形圖axes():坐標(biāo)軸的范圍boxplot():制作一個(gè)盒子和胡須圖grid():配置網(wǎng)格線fill():繪制填充多邊形圖legend():在坐標(biāo)軸上放置圖例hist():繪制直方圖margins():設(shè)置繪圖到框的邊距magnitude_spectrum():繪制幅度譜圖subplot():在當(dāng)前圖中添加子圖phase_spectrum():繪制相位譜圖text():向坐標(biāo)軸添加文本scatter():繪制散點(diǎn)圖xticks()或yticks():獲取或設(shè)置當(dāng)前刻度線位置和坐標(biāo)軸標(biāo)簽pie():繪制餅狀圖title():設(shè)置坐標(biāo)軸的標(biāo)題plot():繪制折線圖xlabel()或ylabel():設(shè)置坐標(biāo)軸標(biāo)簽plot_date():繪制包含日期的數(shù)據(jù)圖xscale()或yscale():設(shè)置坐標(biāo)軸刻度9.1Matplotlib簡(jiǎn)介與安裝9.1.1M53.OSPF的LSA類型5.1OSPF相關(guān)知識(shí)回顧3.OSPF的LSA類型5.1OSPF相關(guān)知識(shí)回顧65.1OSPF相關(guān)知識(shí)回顧5.1OSPF相關(guān)知識(shí)回顧7當(dāng)OSPF網(wǎng)絡(luò)規(guī)模較大時(shí),配置路由聚合,可以有效減少路由表中的條目,減小對(duì)系統(tǒng)資源的占用,不影響系統(tǒng)的性能。此外,如果被聚合的IP地址范圍內(nèi)的某條鏈路頻繁Up和Down,該變化并不會(huì)通告到被聚合的IP地址范圍外的設(shè)備。因此,可以避免網(wǎng)絡(luò)中的路由震蕩,在一定程度上提高了網(wǎng)絡(luò)的穩(wěn)定性。ABR向其它區(qū)域發(fā)送路由信息時(shí),以網(wǎng)段為單位生成Type3LSA。當(dāng)區(qū)域中存在連續(xù)的網(wǎng)段(具有相同前綴的路由信息)時(shí),可以通過(guò)abr-summary命令將這些網(wǎng)段聚合成一個(gè)網(wǎng)段,ABR向其他區(qū)域只發(fā)送一條聚合后的LSA,所有指定的聚合網(wǎng)段范圍的LSA將不會(huì)再被單獨(dú)發(fā)送。從而減小路由表的規(guī)模,提高路由器的性能。5.2OSPF路由聚合當(dāng)OSPF網(wǎng)絡(luò)規(guī)模較大時(shí),配置路由聚合,可以有效減少路由表中81.配置ABR路由聚合步驟2.配置ASBR路由聚合步驟3.配置OSPF路由聚合配置OSPF手動(dòng)路由聚合,在一個(gè)OSPF自治系統(tǒng)中ABR與ASBR的配置情況,路由器AR1、AR2運(yùn)行在骨干Area0區(qū)域,路由器AR2、AR3運(yùn)行在Area1區(qū)域中,路由器AR2為ABR路由器,路由器AR3為ASBR路由器,在路由器AR3端口GE0/0/0與GE0/0/2進(jìn)行手動(dòng)路由聚合,實(shí)現(xiàn)將150.1.1.0/24與150.1.2.0/24匯總成一條150.1.0.0/16路由引入到OSPF中,相關(guān)端口與IP地址配置,如圖4.5所示,進(jìn)行網(wǎng)絡(luò)拓?fù)溥B接。5.2OSPF路由聚合1.配置ABR路由聚合步驟5.2OSPF路由聚合9OSPF認(rèn)證主要是為了安全,比如你網(wǎng)絡(luò)中所有路由都啟了OSPF,如果在這個(gè)拓?fù)洵h(huán)境中,某人想學(xué)習(xí)你這個(gè)OSPF網(wǎng)絡(luò)中的路由信息,就在其中一個(gè)節(jié)點(diǎn)又連了一個(gè)路由器,并且也啟了OSPF,那么如果你OSPF網(wǎng)絡(luò)中沒(méi)有配置加密,這臺(tái)路由就會(huì)輕易的學(xué)習(xí)到其他所有路由器的信息。這是極不安全的,所以通常我們會(huì)啟動(dòng)加密認(rèn)證來(lái)管理OSPF網(wǎng)絡(luò)。5.3.1OSPF認(rèn)證方式1.區(qū)域認(rèn)證方式2.端口認(rèn)證方式5.3.2.配置OSPF區(qū)域認(rèn)證方式1.區(qū)域認(rèn)證2.端口認(rèn)證5.3OSPF區(qū)域認(rèn)證方式配置OSPF認(rèn)證主要是為了安全,比如你網(wǎng)絡(luò)中所有路由都啟了OSP105.4.1OSPF虛連接配置我們知道在OSPF協(xié)議中要求每個(gè)區(qū)域與骨干區(qū)域(Area0)必須直接相連,但是實(shí)際組網(wǎng)中,網(wǎng)絡(luò)情況非常的復(fù)雜,有時(shí)候在劃分區(qū)域時(shí),無(wú)法保證每個(gè)區(qū)域都滿足這個(gè)要求。這個(gè)時(shí)候我們就需要使用虛鏈接(VirtualLink)技術(shù)來(lái)解決這個(gè)問(wèn)題。虛連接是指在兩臺(tái)ABR之間,穿過(guò)一個(gè)非骨干區(qū)域(也稱為轉(zhuǎn)換區(qū)域,TransitArea),建立的一條邏輯上的連接通道(須在兩端的ABR上同時(shí)配置)。配置OSPF虛連接,相關(guān)端口與IP地址配置,如圖5.6所示,進(jìn)行網(wǎng)絡(luò)拓?fù)溥B接,Area2沒(méi)有與骨干區(qū)域直接相連。Area1被用作傳輸區(qū)域(TransitArea)來(lái)連接Area2和Area0。AR1和AR2之間配置一條虛連接。5.4OSPF的特殊區(qū)域配置5.4.1OSPF虛連接配置5.4OSPF的特殊區(qū)域配置119.1Matplotlib簡(jiǎn)介與安裝9.1.2Matplotlib安裝Matplotlib的安裝非常簡(jiǎn)單,本節(jié)主要介紹在Windows平臺(tái)上安裝Matplotlib的方法??梢灾苯油ㄟ^(guò)pip工具來(lái)進(jìn)行在線安裝,命令如下:

輸入命令后,開(kāi)始下載并安裝Matplotlib。由于Matplotlib在安裝時(shí)有一些依賴庫(kù)的關(guān)聯(lián),因此pip工具將聯(lián)網(wǎng)自動(dòng)下載安裝相關(guān)的包。當(dāng)安裝完成后,自動(dòng)退出安裝環(huán)境,并提示【Successfullyinstalledmatplotlib***】。如果輸入命令后,提示【Requiredalreadysatisfied…】,說(shuō)明此時(shí)已經(jīng)安裝過(guò)Matplotlib,無(wú)須再次進(jìn)行安裝。>pipinstallmatplotlib9.1Matplotlib簡(jiǎn)介與安裝9.1.2M129.2基礎(chǔ)語(yǔ)法和常用設(shè)置

9.2.1繪圖流程

在Matplotlib中,大部分的圖形繪制都遵循以下流程,使用這個(gè)流程可以完成大部分圖形的繪制。

①導(dǎo)入Matplotlib庫(kù)。導(dǎo)入Matplotlib庫(kù)是使用Matplotlib的第一步,即importmatplotlib.pyplotasplt。

②創(chuàng)建Figure畫(huà)布對(duì)象。如果繪制一個(gè)簡(jiǎn)單的小圖形,可以不設(shè)置Figure對(duì)象,使用默認(rèn)創(chuàng)建的Figure對(duì)象,也可以顯式地創(chuàng)建Figure對(duì)象。

如果一張F(tuán)igure畫(huà)布上,需要繪制多個(gè)圖形,那么就必須顯式地創(chuàng)建Figure對(duì)象。然后得到每個(gè)位置上的Axes對(duì)象,進(jìn)行對(duì)應(yīng)位置上的圖形繪制。

③根據(jù)Figure對(duì)象進(jìn)行布局設(shè)置。此處的布局設(shè)置與用戶的需求有關(guān),可以適當(dāng)省略此步。9.2基礎(chǔ)語(yǔ)法和常用設(shè)置

9.2.1繪圖流程139.2基礎(chǔ)語(yǔ)法和常用設(shè)置9.2.1繪圖流程

④調(diào)用Figure對(duì)象,進(jìn)行對(duì)應(yīng)位置的圖形繪制。此時(shí)傳入數(shù)據(jù),進(jìn)行繪圖。對(duì)于圖形的一些細(xì)節(jié)設(shè)置,都在此步中進(jìn)行。

⑤設(shè)置其他參數(shù)。

⑥顯示圖形。使用show()完成圖形的顯示。

在上述步驟中,第①、③、④、⑥步是必須存在的,而第②、⑤步是可以省略或者自定義的。其中,第①、⑥步都僅包含1條語(yǔ)句,本節(jié)不再贅述;第④步是具體的繪制過(guò)程,即整個(gè)可視化流程的核心,這部分內(nèi)容將在9.2節(jié)和9.3節(jié)詳細(xì)介紹;本節(jié)將重點(diǎn)介紹第②、③、⑤步的實(shí)現(xiàn)方法。9.2基礎(chǔ)語(yǔ)法和常用設(shè)置9.2.1繪圖流程149.2基礎(chǔ)語(yǔ)法和常用設(shè)置9.2.2布局設(shè)置

在使用Matplotlib繪制圖形時(shí),布局設(shè)置是不可或缺的重要環(huán)節(jié),也是繪圖的主體部分。布局設(shè)置可以簡(jiǎn)單理解為向畫(huà)布中添加內(nèi)容,如添加標(biāo)題、坐標(biāo)軸名稱和范圍、圖例名稱等。需要說(shuō)明的是,布局設(shè)置和圖形的繪制過(guò)程是并列的步驟,二者并沒(méi)有先后順序,可以先繪制圖形,也可以先進(jìn)行布局設(shè)置(圖例設(shè)置除外)。Matplotlib中添加各類標(biāo)簽和圖例的函數(shù)如表9-2所示。9.2基礎(chǔ)語(yǔ)法和常用設(shè)置9.2.2布局設(shè)置159.2基礎(chǔ)語(yǔ)法和常用設(shè)置9.2.2布局設(shè)置

表9-2添加各類標(biāo)簽和圖例的函數(shù)

需要說(shuō)明的是,如果需要對(duì)當(dāng)前圖形設(shè)置圖例信息,則必須在繪制完成之后再添加圖例信息,反之則無(wú)法觀察到正常的運(yùn)行結(jié)果。函數(shù)名稱函數(shù)作用plt.title在當(dāng)前的圖形中添加標(biāo)題plt.xlabel在當(dāng)前的圖形中添加x軸名稱plt.ylabel在當(dāng)前的圖形中添加y軸名稱plt.xlim指定當(dāng)前的圖形中x軸的范圍,只能是數(shù)值區(qū)間plt.ylim指定當(dāng)前的圖形中y軸的范圍,只能是數(shù)值區(qū)間plt.xticks指定當(dāng)前的圖形中x軸刻度的數(shù)目與取值plt.yticks指定當(dāng)前的圖形中y軸刻度的數(shù)目與取值plt.legend在當(dāng)前的圖形中添加圖例,可以指定圖例的大小、位置和標(biāo)簽9.2基礎(chǔ)語(yǔ)法和常用設(shè)置9.2.2布局設(shè)置函數(shù)名169.2基礎(chǔ)語(yǔ)法和常用設(shè)置9.2.3畫(huà)布創(chuàng)建Matplotlib可以把很多張圖畫(huà)在一個(gè)顯示界面中,這就涉及需要將面板切分成一個(gè)一個(gè)子圖,這在進(jìn)行對(duì)比分析時(shí)非常有用。9.2.4參數(shù)設(shè)置Matplotlib使用rc配置文件來(lái)自定義圖像的各種默認(rèn)屬性,稱之為rc配置或rc參數(shù)。在Matplotlib中,幾乎所有的屬性都可以為空值,如視圖窗口的大小、分辨率、線寬、顏色、樣式、坐標(biāo)軸和網(wǎng)格屬性等。9.2基礎(chǔ)語(yǔ)法和常用設(shè)置9.2.3畫(huà)布創(chuàng)建179.3基礎(chǔ)圖形繪制Matplotlib庫(kù)提供了許多不同種類圖形的函數(shù)式繪圖方法。由于每類圖形的特點(diǎn)和適用范圍不同,本節(jié)將重點(diǎn)介紹適用于數(shù)據(jù)分析與計(jì)算的圖形繪制方案。9.3.1折線圖

折線圖(LineChart)是一種將數(shù)據(jù)點(diǎn)按照順序連接起來(lái)的圖形。它可以看作是散點(diǎn)圖按照x軸坐標(biāo)順序連接起來(lái)的圖形。

折線圖的適用場(chǎng)景是:由于可以顯示隨時(shí)間(根據(jù)常用比例設(shè)置)而變化的連續(xù)數(shù)據(jù),因此適用于顯示在相等時(shí)間間隔下數(shù)據(jù)變化的趨勢(shì)。由于折線圖很容易反映數(shù)據(jù)變化的趨勢(shì),因此折線圖還適合二維的大數(shù)據(jù)集和多個(gè)二維數(shù)據(jù)集的比較。9.3基礎(chǔ)圖形繪制Matplotlib庫(kù)提供了許多不189.3基礎(chǔ)圖形繪制9.3.2直方圖

直方圖(Histogram)又稱質(zhì)量分布圖,是一種統(tǒng)計(jì)報(bào)告圖,由一系列高度不等的縱向條紋或線段來(lái)表示數(shù)據(jù)分布的情況。一般用橫軸表示數(shù)據(jù)類型,縱軸表示分布情況。直方圖是數(shù)值型數(shù)據(jù)分布的精確圖形表示。

直方圖的適用場(chǎng)合是二維數(shù)據(jù)集(每個(gè)數(shù)據(jù)點(diǎn)包括x和y兩個(gè)值),但只有一個(gè)維度需要比較,用于顯示一段時(shí)間內(nèi)的數(shù)據(jù)變化或顯示各項(xiàng)之間的比較情況。另外,也適用于枚舉型數(shù)據(jù),比如地域之間的關(guān)系,數(shù)據(jù)之間沒(méi)有必然的連續(xù)性。

直方圖的優(yōu)勢(shì):直方圖利用柱的高度反映數(shù)據(jù)的差異,肉眼對(duì)高度差異很敏感。

直方圖的劣勢(shì):只適用中小規(guī)模的數(shù)據(jù)集。9.3基礎(chǔ)圖形繪制9.3.2直方圖199.3基礎(chǔ)圖形繪制9.3.3餅狀圖

餅狀圖是將各項(xiàng)數(shù)據(jù)點(diǎn)顯示在一張圖中,以餅的大小確定每一項(xiàng)的占比。餅狀圖可以輕松顯示一個(gè)數(shù)據(jù)系列中各項(xiàng)的大小與各項(xiàng)總和的比例。

餅狀圖的適用場(chǎng)景:常用于統(tǒng)計(jì)學(xué)模型,可以顯示各項(xiàng)的大小與各項(xiàng)總和的比例;也適用于簡(jiǎn)單的占比比例圖,在不要求數(shù)據(jù)精細(xì)的情況使用。

餅狀圖的優(yōu)勢(shì):明確顯示數(shù)據(jù)的比例情況。

餅狀圖的劣勢(shì):不顯示具體的數(shù)值,只顯示占比情況。9.3基礎(chǔ)圖形繪制9.3.3餅狀圖209.3基礎(chǔ)圖形繪制9.3.3餅狀圖

設(shè)計(jì)餅狀圖的數(shù)據(jù)源,需要滿足以下要求:

僅有一個(gè)要繪制的數(shù)據(jù)系列;

要繪制的數(shù)值沒(méi)有負(fù)值;

要繪制的數(shù)值幾乎沒(méi)有零值;

類別數(shù)目無(wú)限制;

各類別分別代表整個(gè)餅狀圖的一部分;

各個(gè)部分需要標(biāo)注百分比。9.3基礎(chǔ)圖形繪制9.3.3餅狀圖219.3基礎(chǔ)圖形繪制9.3.4箱形圖

箱形圖(Boxplot)又稱為盒須圖、盒式圖、盒狀圖或箱線圖,是一種用作顯示一組數(shù)據(jù)分散情況的統(tǒng)計(jì)圖。繪制時(shí),使用常用的統(tǒng)計(jì)量,能提供有關(guān)數(shù)據(jù)位置和分散情況的關(guān)鍵信息,尤其在比較不同的母體數(shù)據(jù)時(shí)更可表現(xiàn)其差異。

箱形圖主要標(biāo)識(shí)了每條線表示的含義,其中應(yīng)用到了分位數(shù)的概念。將一組數(shù)據(jù)從大到小排列,分別計(jì)算出其上邊緣、上四分位數(shù)、中位數(shù)、下四分位數(shù)、下邊緣及異常值。

箱形圖的適用場(chǎng)景:觀察數(shù)據(jù)的總體狀態(tài),識(shí)別數(shù)據(jù)中的異常值。

箱形圖的優(yōu)勢(shì):相關(guān)統(tǒng)計(jì)點(diǎn)都可以通過(guò)百分位計(jì)算方法實(shí)現(xiàn),直觀明了地識(shí)別數(shù)據(jù)中的異常值、判斷數(shù)據(jù)的偏態(tài)和尾重。9.3基礎(chǔ)圖形繪制9.3.4箱形圖229.3基礎(chǔ)圖形繪制9.3.5散點(diǎn)圖

散點(diǎn)圖是指在數(shù)理統(tǒng)計(jì)回歸分析中,數(shù)據(jù)點(diǎn)在直角坐標(biāo)系平面上的分布圖。散點(diǎn)圖表示因變量隨自變量變化的大致趨勢(shì),由此趨勢(shì)可以選擇合適的函數(shù)進(jìn)行經(jīng)驗(yàn)分布的擬合,進(jìn)而找到變量之間的函數(shù)關(guān)系。

常見(jiàn)的散點(diǎn)圖主要包括二維散點(diǎn)圖、三維散點(diǎn)圖和ArcGIS散點(diǎn)圖,主要用于提供以下關(guān)鍵信息:

變量之間是否存在數(shù)量關(guān)聯(lián)趨勢(shì);

如果存在關(guān)聯(lián)趨勢(shì),是線性還是曲線的;

如果有某一個(gè)點(diǎn)或者某幾個(gè)點(diǎn)偏離大多數(shù)點(diǎn),也就是離群值,通過(guò)散點(diǎn)圖可以一目了然,從而可以進(jìn)一步分析這些離群值是否可能在建模分析中對(duì)總體產(chǎn)生很大影響。9.3基礎(chǔ)圖形繪制9.3.5散點(diǎn)圖23Matplotlib可視化教學(xué)講解課件24Matplotlib可視化教學(xué)講解課件259.3基礎(chǔ)圖形繪制9.3.6三維圖

三維圖(3D)也稱為立體圖。三維圖與二維圖的區(qū)別是:二維圖只展示平面效果,沒(méi)有立體感,而三維圖則體現(xiàn)立體形狀,賦予了物體靈動(dòng)的感覺(jué)。

三維圖的適用場(chǎng)景:應(yīng)用在以數(shù)字化、可視化、智能化、網(wǎng)絡(luò)化、集成化理念為目標(biāo)的場(chǎng)景中,例如,樓宇、糧倉(cāng)、港口、城市、消防預(yù)案、安防管理等場(chǎng)地。

三維圖的優(yōu)勢(shì):利用三維可視化技術(shù)可實(shí)現(xiàn)全面的數(shù)據(jù)集成、信息直觀可視化,提升集成運(yùn)作效率和扁平化管理。

三維圖的劣勢(shì):涉及技術(shù)較復(fù)雜,不適用于初學(xué)者。9.3基礎(chǔ)圖形繪制9.3.6三維圖26本章小結(jié)

本章詳細(xì)介紹了Matplotlib簡(jiǎn)介與安裝、基礎(chǔ)語(yǔ)法和常用設(shè)置、基礎(chǔ)圖形繪制等內(nèi)容。此外,針對(duì)具體的可視化過(guò)程,本章還提供了對(duì)應(yīng)的實(shí)例,對(duì)數(shù)據(jù)可視化的需求和思路進(jìn)行剖析,并給出了代碼的分析和實(shí)現(xiàn)過(guò)程。其中,基礎(chǔ)語(yǔ)法和常用設(shè)置、基礎(chǔ)圖形繪制等內(nèi)容是本章的重點(diǎn)。

在Matplotlib簡(jiǎn)介與安裝中,介紹了Matplotlib可視化的原理和常用方法、Matplotlib的安裝方法。

在基礎(chǔ)語(yǔ)法和常用設(shè)置中,詳細(xì)介紹了繪圖流程、布局設(shè)置、畫(huà)布創(chuàng)建、參數(shù)設(shè)置的方案,并通過(guò)實(shí)例介紹每種設(shè)置的具體配置方法。本章小結(jié)本章詳細(xì)介紹了Matplotlib簡(jiǎn)介與27第9章Matplotlib可視化目錄

9.1Matplotlib簡(jiǎn)介與安裝9.1.1Matplotlib簡(jiǎn)介9.1.2Matplotlib安裝9.2基礎(chǔ)語(yǔ)法和常用設(shè)置9.2.1繪圖流程9.2.2布局設(shè)置9.2.3畫(huà)布創(chuàng)建9.2.4參數(shù)設(shè)置9.3基礎(chǔ)圖形繪制9.3.1折線圖9.3.2直方圖9.3.3餅狀圖9.3.4箱形圖9.3.5散點(diǎn)圖9.3.6三維圖第9章Matplotlib可視化28第9章Matplotlib可視化

Matplotlib的功能和MATLAB中畫(huà)圖的功能十分類似。MATLAB畫(huà)圖的流程相對(duì)復(fù)雜,而使用Python中的Matplotlib畫(huà)圖則非常方便。Matplotlib是Python中的一個(gè)包,主要用于繪制2D圖形(也可以繪制3D圖像),在數(shù)據(jù)分析領(lǐng)域占據(jù)很重要的地位。另外,它還具備豐富的擴(kuò)展性能,能實(shí)現(xiàn)更強(qiáng)大的功能。9.1Matplotlib簡(jiǎn)介與安裝9.1.1Matplotlib簡(jiǎn)介Matplotlib是Python中一個(gè)優(yōu)秀的數(shù)據(jù)可視化第三方庫(kù),有超過(guò)100種數(shù)據(jù)可視化顯示效果,它以各種硬拷貝格式和跨平臺(tái)的交互式環(huán)境生成出版質(zhì)量級(jí)別的圖形。通過(guò)Matplotlib,開(kāi)發(fā)者可以僅需要幾行代碼,便可以生成直方圖、餅狀圖、條形圖、散點(diǎn)圖等多種不同形式的繪圖。作為入門(mén)級(jí)別的一款可視化工具,Matplotlib具有如下特性:第9章Matplotlib可視化Matplotli299.1Matplotlib簡(jiǎn)介與安裝9.1.1Matplotlib簡(jiǎn)介

支持交互式和非交互式繪圖;

可將圖像保存成PNG、PS等多種圖像格式;

支持曲線(折線)圖、條形圖、柱狀圖、餅狀圖;

圖形可配置;

跨平臺(tái),支持Linux、Windows、MacOSX與Solaris;Matplotlib的繪圖函數(shù)與MATLAB的繪圖函數(shù)名字相似,遷移學(xué)習(xí)的成本比較低;

支持LaTeX的公式插入。

在Matplotlib中,有兩種不同的繪圖方法。9.1Matplotlib簡(jiǎn)介與安裝9.1.1Ma309.1Matplotlib簡(jiǎn)介與安裝9.1.1Matplotlib簡(jiǎn)介1.函數(shù)式繪圖

在matplotlib.pyplot中已經(jīng)封裝好大量的常用函數(shù),用戶可以直接調(diào)用函數(shù)進(jìn)行繪圖。我們經(jīng)常將matplotlib.pyplot取別名為plt。plt中主要定義以下兩類函數(shù)。

①操作函數(shù):對(duì)畫(huà)布、圖、子圖、坐標(biāo)軸、圖例、背景、網(wǎng)格等操作。

②繪圖函數(shù):折線圖、散點(diǎn)圖、條形圖、直方圖、餅狀圖等特定圖的繪制函數(shù)。

函數(shù)式繪圖適合于新手,無(wú)須了解內(nèi)部的對(duì)象問(wèn)題。它對(duì)操作性的要求不是很高,主要針對(duì)定制性不強(qiáng)的繪圖。常用函數(shù)如表9-1所示。9.1Matplotlib簡(jiǎn)介與安裝9.1.1M319.1Matplotlib簡(jiǎn)介與安裝9.1.1Matplotlib簡(jiǎn)介

表9-1常用函數(shù)繪圖函數(shù)操作函數(shù)bar():制作條形圖axes():坐標(biāo)軸的范圍boxplot():制作一個(gè)盒子和胡須圖grid():配置網(wǎng)格線fill():繪制填充多邊形圖legend():在坐標(biāo)軸上放置圖例hist():繪制直方圖margins():設(shè)置繪圖到框的邊距magnitude_spectrum():繪制幅度譜圖subplot():在當(dāng)前圖中添加子圖phase_spectrum():繪制相位譜圖text():向坐標(biāo)軸添加文本scatter():繪制散點(diǎn)圖xticks()或yticks():獲取或設(shè)置當(dāng)前刻度線位置和坐標(biāo)軸標(biāo)簽pie():繪制餅狀圖title():設(shè)置坐標(biāo)軸的標(biāo)題plot():繪制折線圖xlabel()或ylabel():設(shè)置坐標(biāo)軸標(biāo)簽plot_date():繪制包含日期的數(shù)據(jù)圖xscale()或yscale():設(shè)置坐標(biāo)軸刻度9.1Matplotlib簡(jiǎn)介與安裝9.1.1M323.OSPF的LSA類型5.1OSPF相關(guān)知識(shí)回顧3.OSPF的LSA類型5.1OSPF相關(guān)知識(shí)回顧335.1OSPF相關(guān)知識(shí)回顧5.1OSPF相關(guān)知識(shí)回顧34當(dāng)OSPF網(wǎng)絡(luò)規(guī)模較大時(shí),配置路由聚合,可以有效減少路由表中的條目,減小對(duì)系統(tǒng)資源的占用,不影響系統(tǒng)的性能。此外,如果被聚合的IP地址范圍內(nèi)的某條鏈路頻繁Up和Down,該變化并不會(huì)通告到被聚合的IP地址范圍外的設(shè)備。因此,可以避免網(wǎng)絡(luò)中的路由震蕩,在一定程度上提高了網(wǎng)絡(luò)的穩(wěn)定性。ABR向其它區(qū)域發(fā)送路由信息時(shí),以網(wǎng)段為單位生成Type3LSA。當(dāng)區(qū)域中存在連續(xù)的網(wǎng)段(具有相同前綴的路由信息)時(shí),可以通過(guò)abr-summary命令將這些網(wǎng)段聚合成一個(gè)網(wǎng)段,ABR向其他區(qū)域只發(fā)送一條聚合后的LSA,所有指定的聚合網(wǎng)段范圍的LSA將不會(huì)再被單獨(dú)發(fā)送。從而減小路由表的規(guī)模,提高路由器的性能。5.2OSPF路由聚合當(dāng)OSPF網(wǎng)絡(luò)規(guī)模較大時(shí),配置路由聚合,可以有效減少路由表中351.配置ABR路由聚合步驟2.配置ASBR路由聚合步驟3.配置OSPF路由聚合配置OSPF手動(dòng)路由聚合,在一個(gè)OSPF自治系統(tǒng)中ABR與ASBR的配置情況,路由器AR1、AR2運(yùn)行在骨干Area0區(qū)域,路由器AR2、AR3運(yùn)行在Area1區(qū)域中,路由器AR2為ABR路由器,路由器AR3為ASBR路由器,在路由器AR3端口GE0/0/0與GE0/0/2進(jìn)行手動(dòng)路由聚合,實(shí)現(xiàn)將150.1.1.0/24與150.1.2.0/24匯總成一條150.1.0.0/16路由引入到OSPF中,相關(guān)端口與IP地址配置,如圖4.5所示,進(jìn)行網(wǎng)絡(luò)拓?fù)溥B接。5.2OSPF路由聚合1.配置ABR路由聚合步驟5.2OSPF路由聚合36OSPF認(rèn)證主要是為了安全,比如你網(wǎng)絡(luò)中所有路由都啟了OSPF,如果在這個(gè)拓?fù)洵h(huán)境中,某人想學(xué)習(xí)你這個(gè)OSPF網(wǎng)絡(luò)中的路由信息,就在其中一個(gè)節(jié)點(diǎn)又連了一個(gè)路由器,并且也啟了OSPF,那么如果你OSPF網(wǎng)絡(luò)中沒(méi)有配置加密,這臺(tái)路由就會(huì)輕易的學(xué)習(xí)到其他所有路由器的信息。這是極不安全的,所以通常我們會(huì)啟動(dòng)加密認(rèn)證來(lái)管理OSPF網(wǎng)絡(luò)。5.3.1OSPF認(rèn)證方式1.區(qū)域認(rèn)證方式2.端口認(rèn)證方式5.3.2.配置OSPF區(qū)域認(rèn)證方式1.區(qū)域認(rèn)證2.端口認(rèn)證5.3OSPF區(qū)域認(rèn)證方式配置OSPF認(rèn)證主要是為了安全,比如你網(wǎng)絡(luò)中所有路由都啟了OSP375.4.1OSPF虛連接配置我們知道在OSPF協(xié)議中要求每個(gè)區(qū)域與骨干區(qū)域(Area0)必須直接相連,但是實(shí)際組網(wǎng)中,網(wǎng)絡(luò)情況非常的復(fù)雜,有時(shí)候在劃分區(qū)域時(shí),無(wú)法保證每個(gè)區(qū)域都滿足這個(gè)要求。這個(gè)時(shí)候我們就需要使用虛鏈接(VirtualLink)技術(shù)來(lái)解決這個(gè)問(wèn)題。虛連接是指在兩臺(tái)ABR之間,穿過(guò)一個(gè)非骨干區(qū)域(也稱為轉(zhuǎn)換區(qū)域,TransitArea),建立的一條邏輯上的連接通道(須在兩端的ABR上同時(shí)配置)。配置OSPF虛連接,相關(guān)端口與IP地址配置,如圖5.6所示,進(jìn)行網(wǎng)絡(luò)拓?fù)溥B接,Area2沒(méi)有與骨干區(qū)域直接相連。Area1被用作傳輸區(qū)域(TransitArea)來(lái)連接Area2和Area0。AR1和AR2之間配置一條虛連接。5.4OSPF的特殊區(qū)域配置5.4.1OSPF虛連接配置5.4OSPF的特殊區(qū)域配置389.1Matplotlib簡(jiǎn)介與安裝9.1.2Matplotlib安裝Matplotlib的安裝非常簡(jiǎn)單,本節(jié)主要介紹在Windows平臺(tái)上安裝Matplotlib的方法??梢灾苯油ㄟ^(guò)pip工具來(lái)進(jìn)行在線安裝,命令如下:

輸入命令后,開(kāi)始下載并安裝Matplotlib。由于Matplotlib在安裝時(shí)有一些依賴庫(kù)的關(guān)聯(lián),因此pip工具將聯(lián)網(wǎng)自動(dòng)下載安裝相關(guān)的包。當(dāng)安裝完成后,自動(dòng)退出安裝環(huán)境,并提示【Successfullyinstalledmatplotlib***】。如果輸入命令后,提示【Requiredalreadysatisfied…】,說(shuō)明此時(shí)已經(jīng)安裝過(guò)Matplotlib,無(wú)須再次進(jìn)行安裝。>pipinstallmatplotlib9.1Matplotlib簡(jiǎn)介與安裝9.1.2M399.2基礎(chǔ)語(yǔ)法和常用設(shè)置

9.2.1繪圖流程

在Matplotlib中,大部分的圖形繪制都遵循以下流程,使用這個(gè)流程可以完成大部分圖形的繪制。

①導(dǎo)入Matplotlib庫(kù)。導(dǎo)入Matplotlib庫(kù)是使用Matplotlib的第一步,即importmatplotlib.pyplotasplt。

②創(chuàng)建Figure畫(huà)布對(duì)象。如果繪制一個(gè)簡(jiǎn)單的小圖形,可以不設(shè)置Figure對(duì)象,使用默認(rèn)創(chuàng)建的Figure對(duì)象,也可以顯式地創(chuàng)建Figure對(duì)象。

如果一張F(tuán)igure畫(huà)布上,需要繪制多個(gè)圖形,那么就必須顯式地創(chuàng)建Figure對(duì)象。然后得到每個(gè)位置上的Axes對(duì)象,進(jìn)行對(duì)應(yīng)位置上的圖形繪制。

③根據(jù)Figure對(duì)象進(jìn)行布局設(shè)置。此處的布局設(shè)置與用戶的需求有關(guān),可以適當(dāng)省略此步。9.2基礎(chǔ)語(yǔ)法和常用設(shè)置

9.2.1繪圖流程409.2基礎(chǔ)語(yǔ)法和常用設(shè)置9.2.1繪圖流程

④調(diào)用Figure對(duì)象,進(jìn)行對(duì)應(yīng)位置的圖形繪制。此時(shí)傳入數(shù)據(jù),進(jìn)行繪圖。對(duì)于圖形的一些細(xì)節(jié)設(shè)置,都在此步中進(jìn)行。

⑤設(shè)置其他參數(shù)。

⑥顯示圖形。使用show()完成圖形的顯示。

在上述步驟中,第①、③、④、⑥步是必須存在的,而第②、⑤步是可以省略或者自定義的。其中,第①、⑥步都僅包含1條語(yǔ)句,本節(jié)不再贅述;第④步是具體的繪制過(guò)程,即整個(gè)可視化流程的核心,這部分內(nèi)容將在9.2節(jié)和9.3節(jié)詳細(xì)介紹;本節(jié)將重點(diǎn)介紹第②、③、⑤步的實(shí)現(xiàn)方法。9.2基礎(chǔ)語(yǔ)法和常用設(shè)置9.2.1繪圖流程419.2基礎(chǔ)語(yǔ)法和常用設(shè)置9.2.2布局設(shè)置

在使用Matplotlib繪制圖形時(shí),布局設(shè)置是不可或缺的重要環(huán)節(jié),也是繪圖的主體部分。布局設(shè)置可以簡(jiǎn)單理解為向畫(huà)布中添加內(nèi)容,如添加標(biāo)題、坐標(biāo)軸名稱和范圍、圖例名稱等。需要說(shuō)明的是,布局設(shè)置和圖形的繪制過(guò)程是并列的步驟,二者并沒(méi)有先后順序,可以先繪制圖形,也可以先進(jìn)行布局設(shè)置(圖例設(shè)置除外)。Matplotlib中添加各類標(biāo)簽和圖例的函數(shù)如表9-2所示。9.2基礎(chǔ)語(yǔ)法和常用設(shè)置9.2.2布局設(shè)置429.2基礎(chǔ)語(yǔ)法和常用設(shè)置9.2.2布局設(shè)置

表9-2添加各類標(biāo)簽和圖例的函數(shù)

需要說(shuō)明的是,如果需要對(duì)當(dāng)前圖形設(shè)置圖例信息,則必須在繪制完成之后再添加圖例信息,反之則無(wú)法觀察到正常的運(yùn)行結(jié)果。函數(shù)名稱函數(shù)作用plt.title在當(dāng)前的圖形中添加標(biāo)題plt.xlabel在當(dāng)前的圖形中添加x軸名稱plt.ylabel在當(dāng)前的圖形中添加y軸名稱plt.xlim指定當(dāng)前的圖形中x軸的范圍,只能是數(shù)值區(qū)間plt.ylim指定當(dāng)前的圖形中y軸的范圍,只能是數(shù)值區(qū)間plt.xticks指定當(dāng)前的圖形中x軸刻度的數(shù)目與取值plt.yticks指定當(dāng)前的圖形中y軸刻度的數(shù)目與取值plt.legend在當(dāng)前的圖形中添加圖例,可以指定圖例的大小、位置和標(biāo)簽9.2基礎(chǔ)語(yǔ)法和常用設(shè)置9.2.2布局設(shè)置函數(shù)名439.2基礎(chǔ)語(yǔ)法和常用設(shè)置9.2.3畫(huà)布創(chuàng)建Matplotlib可以把很多張圖畫(huà)在一個(gè)顯示界面中,這就涉及需要將面板切分成一個(gè)一個(gè)子圖,這在進(jìn)行對(duì)比分析時(shí)非常有用。9.2.4參數(shù)設(shè)置Matplotlib使用rc配置文件來(lái)自定義圖像的各種默認(rèn)屬性,稱之為rc配置或rc參數(shù)。在Matplotlib中,幾乎所有的屬性都可以為空值,如視圖窗口的大小、分辨率、線寬、顏色、樣式、坐標(biāo)軸和網(wǎng)格屬性等。9.2基礎(chǔ)語(yǔ)法和常用設(shè)置9.2.3畫(huà)布創(chuàng)建449.3基礎(chǔ)圖形繪制Matplotlib庫(kù)提供了許多不同種類圖形的函數(shù)式繪圖方法。由于每類圖形的特點(diǎn)和適用范圍不同,本節(jié)將重點(diǎn)介紹適用于數(shù)據(jù)分析與計(jì)算的圖形繪制方案。9.3.1折線圖

折線圖(LineChart)是一種將數(shù)據(jù)點(diǎn)按照順序連接起來(lái)的圖形。它可以看作是散點(diǎn)圖按照x軸坐標(biāo)順序連接起來(lái)的圖形。

折線圖的適用場(chǎng)景是:由于可以顯示隨時(shí)間(根據(jù)常用比例設(shè)置)而變化的連續(xù)數(shù)據(jù),因此適用于顯示在相等時(shí)間間隔下數(shù)據(jù)變化的趨勢(shì)。由于折線圖很容易反映數(shù)據(jù)變化的趨勢(shì),因此折線圖還適合二維的大數(shù)據(jù)集和多個(gè)二維數(shù)據(jù)集的比較。9.3基礎(chǔ)圖形繪制Matplotlib庫(kù)提供了許多不459.3基礎(chǔ)圖形繪制9.3.2直方圖

直方圖(Histogram)又稱質(zhì)量分布圖,是一種統(tǒng)計(jì)報(bào)告圖,由一系列高度不等的縱向條紋或線段來(lái)表示數(shù)據(jù)分布的情況。一般用橫軸表示數(shù)據(jù)類型,縱軸表示分布情況。直方圖是數(shù)值型數(shù)據(jù)分布的精確圖形表示。

直方圖的適用場(chǎng)合是二維數(shù)據(jù)集(每個(gè)數(shù)據(jù)點(diǎn)包括x和y兩個(gè)值),但只有一個(gè)維度需要比較,用于顯示一段時(shí)間內(nèi)的數(shù)據(jù)變化或顯示各項(xiàng)之間的比較情況。另外,也適用于枚舉型數(shù)據(jù),比如地域之間的關(guān)系,數(shù)據(jù)之間沒(méi)有必然的連續(xù)性。

直方圖的優(yōu)勢(shì):直方圖利用柱的高度反映數(shù)據(jù)的差異,肉眼對(duì)高度差異很敏感。

直方圖的劣勢(shì):只適用中小規(guī)模的數(shù)據(jù)集。9.3基礎(chǔ)圖形繪制9.3.2直方圖469.3基礎(chǔ)圖形繪制9.3.3餅狀圖

餅狀圖是將各項(xiàng)數(shù)據(jù)點(diǎn)顯示在一張圖中,以餅的大小確定每一項(xiàng)的占比。餅狀圖可以輕松顯示一個(gè)數(shù)據(jù)系列中各項(xiàng)的大小與各項(xiàng)總和的比例。

餅狀圖的適用場(chǎng)景:常用于統(tǒng)計(jì)學(xué)模型,可以顯示各項(xiàng)的大小與各項(xiàng)總和的比例;也適用于簡(jiǎn)單的占比比

溫馨提示

  • 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)論