版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Python數(shù)據(jù)分析基礎(chǔ)與應(yīng)用模塊模塊7數(shù)據(jù)分析可視化展示【學(xué)習(xí)與訓(xùn)練】7.1初識Matplotlib7.1.1Matplotlib概述Matplotlib提供了一個(gè)套面向繪圖對象編程的API接口,能夠很輕松地實(shí)現(xiàn)各種圖像的繪制,并且它可以配合PythonGUI工具(例如PyQt、Tkinte等)在應(yīng)用程序中嵌入圖形。同時(shí)Matplotlib也支持以腳本的形式嵌入到JupyterNotebook、IPythonshell、Web應(yīng)用服務(wù)器中使用。1.Matplotlib繪制圖形組成Matplotlib生成的圖形主要由以下幾個(gè)部分構(gòu)成:(1)容器層容器層包括Canvas對象、Figure對象、Axes對象組成。①Canvas對象:可以理解為畫板。②Figure對象:可以理解成一張畫布,位于Canvas對象的上層,也就是用戶操作的應(yīng)用層的第1層。它包括了整個(gè)圖形的所有元素,例如標(biāo)題、軸線等??梢园鄠€(gè)圖表。③Axes對象:在畫布中繪制2D圖像的實(shí)際區(qū)域,也稱為繪圖區(qū)域。Axes對象位于Figure對象的上層,也就是用戶操作的應(yīng)用層的第2層,F(xiàn)igure對象中可以包含多個(gè)Axes對象。它擁有獨(dú)立的坐標(biāo)系統(tǒng),可以是直角坐標(biāo)系統(tǒng),即包含x軸和y軸的坐標(biāo)系,也可以是三維坐標(biāo)系統(tǒng),即包含x軸、y軸、z軸的坐標(biāo)系。(2)圖形層圖形層是指繪圖區(qū)域內(nèi)繪制的圖形,即使用plot()函數(shù)或方法根據(jù)已有數(shù)據(jù)繪制的各種圖形。(3)輔助層輔助層是指繪圖區(qū)域內(nèi)圖形之外的其他元素,常用的輔助元素包括坐標(biāo)軸、標(biāo)題、圖例、網(wǎng)格、參考線、參考區(qū)域、注釋文本、表格等。輔助元素可以對圖形進(jìn)行必要的補(bǔ)充說明,可以使圖表更直觀、更容易被用戶理解,但又不會(huì)對圖形產(chǎn)生實(shí)質(zhì)的影響。圖像層和輔助層所包含的內(nèi)容都屬于圖表元素,即位于Axes對象之上。2.Matplotlib的功能擴(kuò)展包常見的工具包如下:(1)Cartopy:這是一個(gè)映射庫,包含面向?qū)ο蟮挠成渫队岸x以及點(diǎn)、線、面的圖形轉(zhuǎn)換工具。(2)Bashmap:這是一個(gè)地圖繪制工具包,其中包含多個(gè)地圖投影,海岸線和國界線。(3)Exceltools:這是Matplotlib為了實(shí)現(xiàn)與MicrosoftExcel交換數(shù)據(jù)而提供的工具。(4)Mplot3d:它用于3D繪圖。(5)Natgrid:這是Natgrid庫的接口,用于對間隔數(shù)據(jù)進(jìn)行不規(guī)則的網(wǎng)格化處理。3.下載和安裝Matplotlib(1)使用Python包管理器pip安裝Matplotlib使用Python包管理器pip來安裝Matplotlib是一種輕量級的方式,打開Windows命令提示符窗口,并輸入以下命令:pipinstallmatplotlib按【Enter】鍵后,即可開始下載與安裝。(2)使用Anaconda安裝安裝Matplotlib的最好的方法是下載Python的Anaconda發(fā)行版,因?yàn)镸atplotlib被預(yù)先安裝在Anaconda中。當(dāng)成功安裝Anaconda后,Matplotlib也同步安裝完成。4.引入Matplotlib安裝成功后,就可以通過import來導(dǎo)入matplotlib庫:importmatplotlib可以使用以下代碼查看matplotlib庫的版本號:matplotlib.__version__7.1.2認(rèn)知Matplotlib的Pyplot模塊Pyplot是Matplotlib的子庫,是常用的繪圖模塊,能讓用戶很方便繪制2D圖表。Matplotlib中的pyplot模塊是一個(gè)函數(shù)集合,提供了一系列用來繪圖的各種函數(shù),例如創(chuàng)建一個(gè)畫布,在畫布中創(chuàng)建一個(gè)繪圖區(qū)域,在繪圖區(qū)域添加一些線、標(biāo)簽等。1.使用import導(dǎo)入pyplot模塊使用時(shí)可以使用import導(dǎo)入pyplot模塊,并設(shè)置一個(gè)其別名為plt,對應(yīng)的代碼如下:importmatplotlib.pyplotasplt或者frommatplotlibimportpyplotasplt這樣我們就可以使用plt來引用Pyplot模塊的方法。2.pyplot模塊的繪圖類型pyplot模塊中包含了快速生成多種圖表的函數(shù),pyplot模塊繪圖各種類型圖形的函數(shù)如表7-1所示。3.pyplot模塊的圖像處理函數(shù)pyplot模塊的圖像處理函數(shù)如表7-2所示。4.pyplot模塊的Axis函數(shù)pyplot模塊的Axis函數(shù)如表7-3所示。5.pyplot模塊的Figure方法及其他相關(guān)方法pyplot模塊的Figure方法及其他方法如表7-4所示。7.1.3使用Matplotlib繪制圖形時(shí)實(shí)現(xiàn)支持中文顯示示例代碼如下:importmatplotlibasmplmpl.rcParams['font.sans-serif']=['SimHei']mpl.rcParams['font.serif']=['SimHei']以下代碼可以解決圖形中的負(fù)號“-”顯示為方塊的問題或者轉(zhuǎn)換負(fù)號為字符串。mpl.rcParams['axes.unicode_minus']=False7.1.4熟悉Pyplot模塊的plot()函數(shù)Pyplot模塊的plot()函數(shù)是繪制二維圖形的基本函數(shù),plot()函數(shù)可以繪制點(diǎn)和線。1.Pyplot模塊plot()函數(shù)的語法格式使用Pyplot模塊plot()函數(shù)繪制單條直線的語法格式如下:plot([x],y,[marker=None],[fmt],linestyle=None,color-None,label=None,*args,**kwargs)使用Pyplot模塊plot()函數(shù)繪制多條直線的語法格式如下:plot([x],y,[fmt],[x2],y2,[fmt2],…,**kwargs)plot()函數(shù)參數(shù)說明如下:?x,y:表示點(diǎn)或線的節(jié)點(diǎn),即x軸和y軸對應(yīng)的數(shù)據(jù),數(shù)據(jù)可以列表或數(shù)組。?marker:可選參數(shù),用于定義數(shù)據(jù)標(biāo)記,默認(rèn)值為None。?fmt:可選參數(shù),用于快速設(shè)置線條樣式的格式字串符,包括標(biāo)記、顏色、線條樣式等,即fmt='[marker][line][color]',例如'o:r'的含義為:“o”表示實(shí)心圓標(biāo)記,“:”表示虛線,“r”表示顏色為紅色。?linestyle:指定線條的類型,默認(rèn)值為實(shí)線。?color:指定線條的顏色,默認(rèn)值為None?label:表示應(yīng)用于圖例的標(biāo)簽文本。?**kwargs:可選參數(shù),設(shè)置標(biāo)簽文字、線的寬度等屬性值。2.使用marker參數(shù)定義數(shù)據(jù)標(biāo)記Matplotlib中內(nèi)置了許多數(shù)據(jù)標(biāo)記,使用這些數(shù)據(jù)標(biāo)記可以便捷地為折線圖或散點(diǎn)圖標(biāo)注數(shù)據(jù)點(diǎn)。使用pyplot的plot()函數(shù)繪制折線圖或者使用scatter()函數(shù)繪制散點(diǎn)圖時(shí),如果想要給數(shù)據(jù)點(diǎn)自定義一些不一樣的數(shù)據(jù)標(biāo)記,可以使用marker參數(shù)來定義,將數(shù)據(jù)標(biāo)記的取值傳遞給marker參數(shù),從而為折線圖或散點(diǎn)圖添加不同樣式的標(biāo)記。3.自定義標(biāo)記大小、顏色、邊框?qū)挾鹊葘傩允褂肕atplotlib繪制圖形時(shí),可以自定義標(biāo)記的大小、顏色、邊框?qū)挾鹊葘傩裕褂玫膮?shù)分別是:(1)markersize屬性:簡寫為ms,定義標(biāo)記的大小。(2)markerfacecolor屬性:簡寫為mfc,定義標(biāo)記內(nèi)部的填充顏色。(3)markerfacecoloralt屬性:簡寫為mfcalt,定義標(biāo)記備用的填充顏色。(4)markeredgecolor屬性:簡寫為mec,定義標(biāo)記邊框的顏色。(5)markeredgewidth屬性:簡寫為mew,定義標(biāo)記的邊框?qū)挾取?.使用linestyle參數(shù)自定義線條的類型使用Matplotlib繪制圖形時(shí),默認(rèn)的線條類型(即線型)是實(shí)線,當(dāng)使用pyplot模塊的plot()函數(shù)繪制折線圖、顯示網(wǎng)格或添加參考線時(shí),可以使用linestyle參數(shù)自定義線型,簡寫為ls,以選擇其他的線條類型。5.使用color參數(shù)自定義線條的顏色使用Matplotlib繪制圖形時(shí),線條的顏色可以使用color參數(shù)來定義,簡寫為c。plot()函數(shù)中的顏色字符如表7-6所示。當(dāng)然也可以自定義顏色類型,例如:SeaGreen、#8FBC8F等,'#8FBC8F'表示自定義RGB顏色字符串。7.使用plot()函數(shù)的fmt參數(shù)定義標(biāo)記、線條樣式和顏色等基本格式使用plot()函數(shù)繪制圖形時(shí),可以使用字符串分別定義數(shù)據(jù)標(biāo)記、線型、顏色、線條寬度等屬性,但每次都需要分別給參數(shù)marker、linestyle、color、linewidth設(shè)置相應(yīng)的值,使得代碼有些煩瑣。為此,Matplotlib提供了由數(shù)據(jù)標(biāo)記、線型、顏色構(gòu)成的格式字符串,格式字符串是快速設(shè)置線條基本樣式的縮寫形式的字符串。plot()函數(shù)的fmt參數(shù)可以接受格式字符串,以便能同時(shí)為線條指定多種樣式,fmt參數(shù)的基本語法格式如下:fmt='[marker][line][color]'#'[數(shù)據(jù)標(biāo)記][線型][顏色]'其中marker標(biāo)記的字符如電子活頁7-4所示,line線型字符如表7-5所示,color顏色字符如表7-6所示。fmt參數(shù)不支持以fmt為關(guān)鍵字的形式傳參,只支持以位置參數(shù)的形式傳遞。7.1.5使用plot()函數(shù)繪制圖形時(shí)設(shè)置輔助元素Matplotlib繪制圖形的輔助元素及對應(yīng)的設(shè)置函數(shù)如表7-7所示。Matplotlib繪制圖形的輔助元素的參考樣例如圖7-5所示。坐標(biāo)軸標(biāo)題圖例坐標(biāo)軸標(biāo)題圖例參考線注釋文本參考區(qū)域表格網(wǎng)格圖7-5Matplotlib繪制圖形的輔助元素的參考樣例Matplotlib繪制圖形常見的輔助元素說明如下:?坐標(biāo)軸:分為單坐標(biāo)軸和雙坐標(biāo)軸,單坐標(biāo)軸按不同的方向可分為水平坐標(biāo)軸(又稱x軸)和垂直坐標(biāo)軸(又稱y軸)。坐標(biāo)軸由刻度線(包括主刻度線和次刻度線)、軸脊和坐標(biāo)軸標(biāo)簽組成,“x軸”、“y軸”表示坐標(biāo)軸的標(biāo)簽,坐標(biāo)軸上數(shù)字(整數(shù)或小數(shù))對應(yīng)短豎線為刻度線,且為主刻度線,Matplotlib繪制圖形的次刻度線默認(rèn)情況下是隱藏的,刻度線上方的橫線為軸脊。不同圖形的輔助元素有區(qū)別的,例如餅圖沒有坐標(biāo)軸,折線圖有坐標(biāo)軸。?標(biāo)題:表示圖形的說明性文本。?圖例:用于指出圖表中的各組圖形采用的標(biāo)識方式。?網(wǎng)格:從坐標(biāo)軸刻度開始的、貫穿繪圖區(qū)域的若干條直線,用于作為估算圖形所示值的標(biāo)準(zhǔn)。?參考線:標(biāo)記坐標(biāo)軸上特殊值的一條直線。?參考區(qū)域:標(biāo)記坐標(biāo)軸上特殊范圍的一塊區(qū)域。?注釋文本:對圖形的一些注釋和說明。?表格:列舉圖形中重要數(shù)據(jù)的表格。7.2應(yīng)用Pyplot子模塊的函數(shù)繪制圖形7.2.1使用Pyplot的plot()函數(shù)繪制線性函數(shù)圖形與波形圖1.使用plot()函數(shù)繪制線性函數(shù)圖形2.使用plot()函數(shù)繪制波形圖7.2.2使用Pyplot的plot()函數(shù)繪制折線圖折線圖(LineChart)是一種將數(shù)據(jù)點(diǎn)按照順序連接起來的圖形,可以看作是將散點(diǎn)圖按照x軸坐標(biāo)順序連接起來的圖形。折線圖的主要功能是查看因變量y隨著自變量x改變的趨勢,最適合于顯示隨時(shí)間(根據(jù)常用比例設(shè)置)而變化的連續(xù)數(shù)據(jù)。同時(shí)還可以看出數(shù)量的差異和增長趨勢的變化。普通折線圖以折線的上升或下降來表示統(tǒng)計(jì)數(shù)量的增減變化的統(tǒng)計(jì)圖,也稱為折線統(tǒng)計(jì)圖。折線統(tǒng)計(jì)圖不僅可以表示數(shù)量的多少,而且可以反映同一事物在不同時(shí)間里的發(fā)展變化的情況,雖然它不直接給出精確的數(shù)據(jù),但是能夠顯示數(shù)據(jù)的變化趨勢,反映事物的變化情況。7.2.3使用Pyplot的bar()函數(shù)繪制柱形圖Pyplot子模塊中提供了bar()函數(shù)來繪制柱形圖,bar()函數(shù)的語法格式如下:bar(x,height,width=0.8,bottom=None,*,align='center',data=None,**kwargs)函數(shù)參數(shù)說明如下:?x:表示柱形圖的x軸數(shù)據(jù),數(shù)據(jù)類型可以為int或float類型?height:接收浮點(diǎn)型數(shù)組,表示柱形圖的高度。?width:接收浮點(diǎn)型數(shù)組,表示柱形圖的寬度,默認(rèn)值為0.8,取值范圍為0-1。?bottom:接收浮點(diǎn)型數(shù)組,表示底座的y坐標(biāo),默認(rèn)值為0,為可選參數(shù)。?align:表示x坐標(biāo)值相對于柱形圖柱子的對齊方式,默認(rèn)值為'center',即柱形圖的柱子以x位置為中心。將該參數(shù)值設(shè)置為'edge'時(shí),則將柱形圖各個(gè)柱子的左邊緣與x坐標(biāo)值對齊。如果要設(shè)置x坐標(biāo)值對齊各個(gè)柱子的右邊緣,則設(shè)置align='edge'的同時(shí)傳遞負(fù)數(shù)的寬度值。?**kwargs:其他參數(shù)。繪制的柱形圖中在各個(gè)柱形上方可以添加數(shù)據(jù)標(biāo)簽,數(shù)據(jù)標(biāo)簽的位置比每個(gè)柱形略高,設(shè)置柱形圖數(shù)據(jù)標(biāo)簽可以使用text()函數(shù),該函數(shù)主要參數(shù)有3個(gè),分別是數(shù)據(jù)標(biāo)簽橫坐標(biāo)、數(shù)據(jù)標(biāo)簽縱坐標(biāo)、數(shù)據(jù)標(biāo)簽顯示值。7.2.4使用Pyplot的barh()函數(shù)繪制條形圖條形圖也稱為條形統(tǒng)計(jì)圖,是統(tǒng)計(jì)分析中最常用的圖形,該圖可以清楚地表明各種數(shù)量的多少。條形圖具有以下特點(diǎn):①能夠使人們一眼看出各個(gè)數(shù)據(jù)的大小。②易于比較數(shù)據(jù)之間的差別。③能清楚的表示出數(shù)量的多少。Pyplot子模塊中提供了barh()函數(shù)來繪制條形圖,barhh()函數(shù)的語法格式如下:barh(y,height,width,color,edgecolor,label,**kwargs)barhh()函數(shù)參數(shù)說明如下:?y:表示y軸對應(yīng)的數(shù)據(jù)列表。?height:表示條形的寬度。?width:表示條形的長度?color:表示條形的顏色。?edgecolor:表示條形邊框的顏色。?label:表示圖例的內(nèi)容,用于解釋每個(gè)條形的含義。在條形圖各個(gè)條形右側(cè)可以添加數(shù)據(jù)標(biāo)簽,數(shù)據(jù)標(biāo)簽的位置比每個(gè)柱形略靠右,設(shè)置柱形圖數(shù)據(jù)標(biāo)簽也可以使用text()函數(shù),該函數(shù)主要參數(shù)有3個(gè),分別是數(shù)據(jù)標(biāo)簽縱坐標(biāo)、數(shù)據(jù)標(biāo)簽橫坐標(biāo)(條形的長度)、數(shù)據(jù)標(biāo)簽顯示值。7.2.5使用Pyplot的scatter()函數(shù)繪制散點(diǎn)圖散點(diǎn)圖(ScatterDiagram)又稱為散點(diǎn)分布圖,是一種以一個(gè)變量為橫坐標(biāo),以另一個(gè)變量為縱坐標(biāo),利用坐標(biāo)點(diǎn)(散點(diǎn))的分布形態(tài)反映變量間的統(tǒng)計(jì)關(guān)系的圖形。散點(diǎn)圖是數(shù)據(jù)點(diǎn)在直角坐標(biāo)系平面上的分布圖,在統(tǒng)計(jì)學(xué)的回歸分析與預(yù)測中經(jīng)常用到。散點(diǎn)圖中,x軸和y軸分別表示兩個(gè)數(shù)據(jù)字段,這樣就可以很容易通過散點(diǎn)看出兩個(gè)字段之間是否存某種關(guān)聯(lián)關(guān)系。散點(diǎn)圖將序列顯示為一組點(diǎn),值由點(diǎn)在圖表中的位置表示,類別由圖表中的不同標(biāo)記表示。散點(diǎn)圖通常用于比較跨類別的聚合數(shù)據(jù)。對于處理值的分布和數(shù)據(jù)點(diǎn)的分簇,散點(diǎn)圖都很理想。如果數(shù)據(jù)集中包含非常多的點(diǎn),那么散點(diǎn)圖便是最佳圖表類型之一。散點(diǎn)圖可以提供以下兩類關(guān)鍵信息:①變量之間是否存在數(shù)值或數(shù)量的關(guān)聯(lián)趨勢,以及關(guān)聯(lián)趨勢是線性還是非線性的。②如果有某一個(gè)點(diǎn)或者某幾個(gè)點(diǎn)偏離大多數(shù)點(diǎn),也就是離群值,通過散點(diǎn)圖可以一目了然,從而可以進(jìn)一步分析這些離群值是否可能在建模分析中對總體產(chǎn)生很大影響。7.2.6使用Pyplot的pie()函數(shù)繪制餅圖餅圖可以比較清楚地反映出部分與部分、部分與整體之間的數(shù)量關(guān)系,易于比較直觀的顯示每組數(shù)據(jù)相對于總數(shù)的比例。餅圖適用于簡單的占比比例圖,在不要求數(shù)據(jù)精細(xì)的情況適用,明確顯示數(shù)據(jù)的比例情況,尤其合適渠道來源分析等場景。餅圖用于顯示一個(gè)數(shù)據(jù)序列中各組成部分的大小與各組成部分總和的比例,以圓形代表研究對象的整體,以圓心為共同頂點(diǎn)的各個(gè)不同扇形顯示各組成部分在整體中所占的比例,一般可用圖例表明各扇形所代表項(xiàng)目的名稱及其所占百分比。數(shù)據(jù)序列每個(gè)分項(xiàng)具有唯一的顏色,并且與圖例中的顏色對應(yīng)。Pyplot子模塊中提供了pie()函數(shù)來繪制餅圖。7.2.7使用Pyplot的boxplot函數(shù)繪制箱形圖箱形圖(Box-plot)又稱為箱線圖、盒須圖、盒式圖,是一種用作顯示一組數(shù)據(jù)分布情況的統(tǒng)計(jì)圖。它不同于一般的折線圖、柱形圖或餅圖等傳統(tǒng)圖表,只是數(shù)據(jù)大小、占比、趨勢等等的呈現(xiàn),其包含一些統(tǒng)計(jì)學(xué)的均值、分位數(shù)、極值等等統(tǒng)計(jì)量,因此,箱形圖信息量較大,不僅能夠分析不同類別數(shù)據(jù)平均水平差異(需在箱形圖中加入均值點(diǎn)),還能揭示數(shù)據(jù)間離散程度、異常值、分布差異等等。箱形圖主要用于分析數(shù)據(jù)內(nèi)部的分布狀態(tài)或分散狀態(tài),例如分布是否對稱,是否存在離散點(diǎn),它能顯示出一組數(shù)據(jù)的上限、下限、中位數(shù)及上下四分位數(shù),箱形圖還可以檢測這組數(shù)據(jù)是否存在異常值。箱形圖作為描述統(tǒng)計(jì)的工具之一,其主要功能如下:①了解數(shù)據(jù)的形狀。②判斷數(shù)據(jù)的偏態(tài)和尾重。③識別數(shù)據(jù)異常值。Pyplot子模塊中提供了boxplot()函數(shù)來繪制箱形圖。1.使用boxplot()函數(shù)默認(rèn)設(shè)置繪制箱形圖2.使用boxplot()函數(shù)自定義設(shè)置繪制箱形圖這里使用boxplot()函數(shù)的自定義設(shè)置繪制80個(gè)1-100的隨機(jī)整數(shù)的箱形圖。3.使用boxplot()函數(shù)繪制3組正態(tài)分布隨機(jī)數(shù)的箱形圖這里利用numpy庫生成3組正態(tài)分布隨機(jī)數(shù)。代碼如下:importmatplotlib.pyplotaspltimportnumpyasnpall_data=[np.random.normal(0,std,100)forstdinrange(1,4)]figure,axes=plt.subplots()#得到畫板、軸axes.boxplot(all_data,patch_artist=True)#描點(diǎn)上色plt.show()4.使用subplots()函數(shù)結(jié)合boxplot()函數(shù)的自定義設(shè)置繪制3組正態(tài)分布隨機(jī)數(shù)的箱形圖有時(shí)會(huì)有把多張圖放在同一行輸出的對比需求,這時(shí)只需指定plt.subplots()函數(shù)的nrows、ncols參數(shù)值,例如:想生成一個(gè)1×2的面板,即每一行放2張圖,只需設(shè)定nrows=1,ncols=2即可。當(dāng)然,還可以通過參數(shù)figsize指定圖形大小,例如figsize=(9,4)。7.2.8使用pyplot的hist()函數(shù)繪制直方圖直方圖是一種表示數(shù)據(jù)概率分布的常用可視化方法,NumPy提供的histogram()函數(shù)以數(shù)據(jù)集的形式表示一組數(shù)據(jù)的概率分布值。NumPy內(nèi)置的histogram()函數(shù)的語法格式如下:histogram(data,bins=10,range=None,normed=None,weights=None,density=False)histogram()函數(shù)的參數(shù)說明如下:?data:表示要繪制的數(shù)組或數(shù)組的序列。?bins:表示使用int或str序列定義一個(gè)指定范圍內(nèi)的等寬框數(shù),默認(rèn)值為10。?range:表示使用可選參數(shù)設(shè)置箱子的上下限。?normed:表示與density屬性相同的可選參數(shù),對于不等的箱寬給出錯(cuò)誤的結(jié)果。?weights:為可選參數(shù),定義與數(shù)據(jù)具有相同維度的權(quán)重?cái)?shù)組。?density:為可選參數(shù),如果結(jié)果為False,則每個(gè)倉中包含樣本數(shù);如果結(jié)果為True,則倉中包含概率密度函數(shù)。histogram()函數(shù)將數(shù)組data和bins作為兩個(gè)參數(shù),其中bins數(shù)組的連續(xù)元素作為range區(qū)間的邊界值。histogram()函數(shù)有兩個(gè)返回值,分別是hist與bin_edges,分別代表直方圖高度值與range數(shù)值區(qū)間范圍,Matplotlib庫的pyplot子模塊的hist()函數(shù)以圖形形式表示數(shù)據(jù)集的頻率分析,即將一個(gè)輸入數(shù)組array和bins數(shù)組作為參數(shù),并將其輸出為直方圖。7.2.9在同一畫布的不同區(qū)域繪制多個(gè)圖形1.使用subplot()函數(shù)在同一畫布的不同區(qū)域繪制多個(gè)子圖subplot()函數(shù)允許在同一畫布中的不同位置繪制多個(gè)圖像,可以理解為對畫布按行、列分割,subplot()函數(shù)的語法格式如下:subplot(nrows,ncols,index,**kwargs)subplot()函數(shù)函數(shù)的常用參數(shù)說明如下:?nrows:表示規(guī)劃區(qū)域的行數(shù)。?ncols:表示規(guī)劃區(qū)域的列數(shù)。?index:表示選擇區(qū)域的索引值,默認(rèn)從1開始編輯subplot()函數(shù)使用3個(gè)整數(shù)描述子圖的位置信息,將整個(gè)繪圖區(qū)域分成nrows行和ncols列,然后從左到右,從上到下的順序?qū)γ總€(gè)子區(qū)域進(jìn)行編號1、2、3……N,左上的子區(qū)域的編號為1、右下的區(qū)域編號為N,編號可以通過參數(shù)index來設(shè)置,子圖將分布在設(shè)定的索引位置上。例如,plt.subplot(2,3,5)表示子圖位于2行3列中的第5個(gè)位置上。2.使用subplots()函數(shù)一次繪制多個(gè)子圖使用pyplot子模塊的subplots()函數(shù)可以在規(guī)劃好的區(qū)域中一次繪制多個(gè)子圖。subplots()函數(shù)的語法格式如下:matplotlib.pyplot.subplots(nrows=1,ncols=1,*,sharex=False,sharey=False,**kwargs)subplots()函數(shù)參數(shù)說明如下:?nrows:默認(rèn)為1,設(shè)置圖表的行數(shù)。?ncols:默認(rèn)為1,設(shè)置圖表的列數(shù)。?sharex、sharey:設(shè)置x、y軸是否共享屬性,默認(rèn)值為false,其值可以設(shè)置為'none'、'all'、'row'或'col',其中False或none表示每個(gè)子圖的x軸或y軸都是獨(dú)立的,True或'all'表示所有子圖都共享x軸或y軸,'row'用于設(shè)置每個(gè)子圖行共享一個(gè)x軸或y軸,'col'用于設(shè)置每個(gè)子圖列共享一個(gè)x軸或y軸。subplots()函數(shù)會(huì)返加一個(gè)包含兩個(gè)元素的元組,其中元組的第1個(gè)元素為Figure對象,第2個(gè)元素為Axes對象或Axes對象數(shù)組。7.3使用Pandas的plot方法繪制圖形7.3.1使用Series對象的plot()方法繪制圖形1.使用Series對象的plot()方法繪制柱形圖Series對象有一個(gè)名為plot的方法可以用來生成圖表,可以選擇生成折線圖、餅圖、柱形圖等,默認(rèn)會(huì)使用Series對象的索引作為橫坐標(biāo),使用Series對象的數(shù)據(jù)作為縱坐標(biāo)。2.使用Series對象的plot()方法繪制反映每個(gè)季度占比的餅圖代碼如下:#autopct參數(shù)可以配置在餅圖上顯示每塊餅的占比ser1.plot(kind='pie',autopct='%.1f%%')#設(shè)置y軸的標(biāo)簽(顯示在餅圖左側(cè)的文字)plt.ylabel('各季度占比')plt.show()7.3.2使用DataFrame對象的plot()方法繪制圖形1.使用DataFrame對象的plot()方法默認(rèn)設(shè)置繪制折線圖繪制2022年1月1日至1月10日長沙市最高氣溫、最低氣溫和空氣質(zhì)量指數(shù)的折線圖,對應(yīng)的代碼如下:importpandasaspddata1=[[11,3],[15,8],[16,10],[18,14],[25,19],[32,23],[34,26],[33,25],[34,23],[22,15],[19,8],[13,4]]df1=pd.DataFrame(data1,index=['1','2','3','4','5','6','7','8','9','10','11','12'],columns=['AverageHighT','AverageLowT'])df1.plot()2.使用DataFrame對象plot()方法繪制圖形時(shí)通過參數(shù)kind指定繪圖類型使用DataFrame對象plot方法繪制圖形時(shí)除了使用默認(rèn)的線條繪圖外,還可以使用其他繪圖方式。plot()方法常用的語法格式如下:plot(kind,color)通過關(guān)鍵字參數(shù)kind可以把圖形類型傳遞給方法plot(),其中kind=line表示繪制折線圖,kind=bar表示繪制柱形圖,kind=barh表示條形圖;參數(shù)color表示設(shè)置顏色。繪制柱形圖時(shí),也可以寫成以下最簡潔的形式:plot.bar()每種繪圖類型也有相對應(yīng)的方法,例如df.plot(kind='line')與df.plot.line()等價(jià)。繪制其他類型圖形的形式如下所示:?折線圖:plot.line()。?條形圖:plot.barh()。?直方圖:plot.hist()。?箱狀箱:plot.box()。?區(qū)域圖:plot.area()。?散點(diǎn)圖:plot.scatter()。7.4使用Seaborn庫繪制統(tǒng)計(jì)圖表7.4.1初識Seaborn庫Seaborn是一種開源的數(shù)據(jù)可視化工具,是一個(gè)使用Python制作統(tǒng)計(jì)圖形的庫。Seaborn建立在matplotlib之上,因此seaborn的很多圖表接口和參數(shù)設(shè)置與matplotlib很是接近。同時(shí),Seaborn在Matplotlib的基礎(chǔ)上進(jìn)行了更高級的二次封裝,因此它可以進(jìn)行更復(fù)雜的圖形設(shè)計(jì)和輸出。Seaborn是Matplotlib的重要補(bǔ)充,可以自主設(shè)置在Matplotlib中被默認(rèn)的各種參數(shù),而且它與Panda數(shù)據(jù)結(jié)構(gòu)緊密集成,能高度兼容NumPy與Pandas數(shù)據(jù)結(jié)構(gòu)以及Scipy與statsmodels等統(tǒng)計(jì)模式。Seaborn已集成在Anaconda中,無須再次安裝。使用Seaborn繪圖時(shí),也會(huì)出現(xiàn)無法正常顯示中文的問題,添加以下設(shè)置字體的代碼可以解決中文顯示為方塊的問題。importseabornassns#將seaborn命名為snssns.set_style("darkgrid",{"font.sans-serif":['KaiTi','Arial']})7.4.2seaborn的風(fēng)格設(shè)置seaborn的風(fēng)格設(shè)置主要分為兩類,其一是風(fēng)格(style)設(shè)置,其二是環(huán)境(context)設(shè)置。1.設(shè)置seaborn的風(fēng)格設(shè)置seaborn風(fēng)格的方法主要有三種:(1)使用set()方法,這是seaborn的通用設(shè)置接口,應(yīng)用seaborn的默認(rèn)主題、縮放和調(diào)色板。(2)使用set_style()方法,這是seaborn風(fēng)格專用設(shè)置接口,設(shè)置后全局風(fēng)格隨之改變。(3)使用axes_style()方法,用于設(shè)置當(dāng)前圖形(axes級)的風(fēng)格,同時(shí)返回設(shè)置后的風(fēng)格系列參數(shù),支持with關(guān)鍵字用法。2.設(shè)置seaborn的環(huán)境設(shè)置seaborn環(huán)境的方法也有3種:(1)使用set()方法,這是seaborn的通用設(shè)置接口。(2)使用set_context()方法,這是seaborn的環(huán)境設(shè)置專用接口,設(shè)置后全局繪圖環(huán)境隨之改變。(3)使用plotting_context()方法,用于設(shè)置當(dāng)前圖(axes級)的繪圖環(huán)境,同時(shí)返回設(shè)置后的環(huán)境系列參數(shù),支持with關(guān)鍵字用法。3.設(shè)置seaborn的顏色Seaborn風(fēng)格多變的另一大特色就是支持個(gè)性化的顏色配置,配置顏色的方法有多種,常用方法包括以下兩個(gè):(1)使用color_palette()方法,這是基于RGB原理設(shè)置顏色的接口,可接收一個(gè)調(diào)色板對象作為參數(shù),同時(shí)可以設(shè)置顏色數(shù)量。color_palette()方法提供了8種不同顏色。(2)使用hls_palette()方法,這是基于Hue(色相)、Luminance(亮度)、Saturation(飽和度)原理設(shè)置顏色的接口,除了顏色數(shù)量參數(shù)外,另外3個(gè)重要參數(shù):色相、亮度、飽和度。hls_palette()方法提供了均勻過渡的8種顏色樣例。4.認(rèn)識seaborn的數(shù)據(jù)集Seaborn自帶了一些經(jīng)典的數(shù)據(jù)集,用于基本的繪制圖表示例數(shù)據(jù)。在聯(lián)網(wǎng)狀態(tài)下,可通過load_dataset()接口進(jìn)行獲取,首次下載后后續(xù)即可通過緩存加載。返回?cái)?shù)據(jù)集格式為Pandas.DataFrame對象。7.5使用pyecharts庫實(shí)現(xiàn)數(shù)據(jù)可視化7.5.1初識pyecharts庫1.pyecharts簡介Echarts是一個(gè)百度開源的數(shù)據(jù)可視化JS庫,憑借著良好的交互性,精巧的圖表設(shè)計(jì),得到了眾多開發(fā)者的認(rèn)可。pyecharts是一個(gè)用于生成Echarts圖表的類庫,pyecharts的主要作用是為了與Python進(jìn)行對接,方便在Python中直接使用數(shù)據(jù)生成圖。使用pyecharts可以生成獨(dú)立的網(wǎng)頁,也可以在flask、django中集成使用。pyecharts可以繪制以下各種圖表:Bar(柱形圖/條形圖)、Bar3D(3D柱形圖)、Boxplot(箱形圖)、EffectScatter(帶有漣漪特效動(dòng)畫的散點(diǎn)圖)、Funnel(漏斗圖)、Gauge(儀表盤)、Geo(地理坐標(biāo)系)、GeoLines(地理坐標(biāo)系線圖)、Graph(關(guān)系圖)、HeatMap(熱力圖)、Kline/Candlestick(K線圖)、Line(折線/面積圖)、Line3D(3D折線圖)、Liquid(水球圖)、Map(地圖)、Parallel(平行坐標(biāo)系)、Pie(餅圖)、Polar(極坐標(biāo)系)、Radar(雷達(dá)圖)、Sankey(?;鶊D)、Scatter(散點(diǎn)圖)、Scatter3D(3D散點(diǎn)圖)、ThemeRiver(主題河流圖)、TreeMap(矩形樹圖)、WordCloud(詞云圖)。用戶還可以通過自定義類實(shí)現(xiàn)多樣化的要求,常見的自定義類如下:(1)Grid類:并行顯示多個(gè)圖形。(2)Overlap類:結(jié)合不同類型圖表疊加畫在同一張圖形上。(3)Page類:同一網(wǎng)頁按順序展示多個(gè)圖形。(4)Tim
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026湖南株洲市教育局直屬學(xué)校面向高校畢業(yè)生招聘教師5人考試備考題庫及答案解析
- 2026年小學(xué)大隊(duì)委和值日生競選方案
- 2025重慶農(nóng)投肉食品有限公司招聘13人備考筆試試題及答案解析
- 深度解析(2026)《GBT 25915.8-2021潔凈室及相關(guān)受控環(huán)境 第8部分:按化學(xué)物濃度劃分空氣潔凈度(ACC)等級》
- 2026年河北張家口經(jīng)開區(qū)編辦青年就業(yè)見習(xí)崗位招聘備考考試試題及答案解析
- 深度解析(2026)《GBT 25714.1-2010鐵液澆包 第1部分:型式與基本參數(shù)》(2026年)深度解析
- 深度解析(2026)GBT 25668.1-2010鏜銑類模塊式工具系統(tǒng) 第1部分:型號表示規(guī)則
- 2025-2026廣東佛山里水中學(xué)教師招聘參考筆試題庫附答案解析
- 2026廣東佛山大學(xué)誠聘海內(nèi)外高層次人才招聘參考筆試題庫附答案解析
- 2025遼寧建筑職業(yè)學(xué)院赴高?,F(xiàn)場招聘10人參考考試試題及答案解析
- 2025年學(xué)法普法考試答案(全套)
- 河北省部分地區(qū)2023-2024學(xué)年度高二上學(xué)期期末考試英語試題(解析版)
- 醫(yī)學(xué)裝備管理與使用理論考核試題及答案
- 醫(yī)院產(chǎn)科培訓(xùn)課件:《妊娠期宮頸疾病的診治策略》
- 水質(zhì)監(jiān)測服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 國家集采中選目錄1-8批(完整版)
- 【員工關(guān)系管理研究國內(nèi)外文獻(xiàn)綜述2800字】
- 《三只小豬蓋房子》拼音版故事
- YS/T 921-2013冰銅
- GB/T 6072.1-2008往復(fù)式內(nèi)燃機(jī)性能第1部分:功率、燃料消耗和機(jī)油消耗的標(biāo)定及試驗(yàn)方法通用發(fā)動(dòng)機(jī)的附加要求
- GB/T 3883.201-2017手持式、可移式電動(dòng)工具和園林工具的安全第2部分:電鉆和沖擊電鉆的專用要求
評論
0/150
提交評論