人工智能采集和分析基礎(chǔ)(Python版)課件 學習單元六 Matplotlib可視化數(shù)據(jù)分析_第1頁
人工智能采集和分析基礎(chǔ)(Python版)課件 學習單元六 Matplotlib可視化數(shù)據(jù)分析_第2頁
人工智能采集和分析基礎(chǔ)(Python版)課件 學習單元六 Matplotlib可視化數(shù)據(jù)分析_第3頁
人工智能采集和分析基礎(chǔ)(Python版)課件 學習單元六 Matplotlib可視化數(shù)據(jù)分析_第4頁
人工智能采集和分析基礎(chǔ)(Python版)課件 學習單元六 Matplotlib可視化數(shù)據(jù)分析_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

任務(wù)1Matplotlib的“HelloWorld”

任務(wù)2北上廣深天氣分析

任務(wù)1Matplotlib的“HelloWorld”

本任務(wù)將安裝Matplotlib,安裝完成以后使用Matplotlib實現(xiàn)折線圖,并對每兩個小時的空氣溫度進行可視化展示,主要內(nèi)容如下:(1)安裝Matplotlib,成功調(diào)用Matplotlib庫;(2)設(shè)置溫度數(shù)據(jù)集;(3)編寫代碼,繪制圖表。【任務(wù)描述】【知識準備】一、Matplotlib簡介Matplotlib是一個Python的2D繪圖庫,具有功能強大、用法簡單等特點,能夠與NumPy和Pandas等庫結(jié)合起來做數(shù)據(jù)的可視化分析,并在多個平臺中生成高質(zhì)量圖片。Matplotlib的官網(wǎng)如圖6-1所示。Matplotlib誕生的意義和主旨都是為了讓事情變得更加容易,讓困難的事情變得可能實現(xiàn)。因此,它在設(shè)計上非常簡潔,初學者往往只需要幾行代碼就能實現(xiàn)一個Matplotlib圖表的繪制。Matplotlib的安裝和其他Python庫的安裝方法基本一致,都是使用Python的包管理工具pip進行安裝。安裝命令如下:pipinstallMatplotlib在控制臺運行這行命令,出現(xiàn)如圖6-2所示的結(jié)果即為安裝成功。二、Matplotlib核心屬性概念Matplotlib中有多種繪圖屬性,以下幾種屬性在Matplotlib數(shù)據(jù)可視化時最為重要。Figure:表示整個圖形,可理解為一個畫布。在整個繪圖過程中的第一步就是創(chuàng)建畫布,再向畫布中添加各種元素。Axes:表示圖像的區(qū)域和數(shù)據(jù)空間。Axis:表示坐標軸線,是數(shù)字線狀的物體。Artist:表示基本元素,即能在圖形上看到的一切都是Artist?。Artist包括文本對象、Line2D對象、集合對象等。當這些對象被渲染時,所有的Artist都被畫到畫布上。三、Matplotlib繪圖模塊pyplotpylot是Matplotlib中一個具有命令風格的函數(shù)式集合,能夠通過類似命令的方式調(diào)用函數(shù)來實現(xiàn)圖形的繪制工作。Matplotlib中的所有內(nèi)容都是按層次結(jié)構(gòu)組織的。層次結(jié)構(gòu)的頂部是matplotlib.pyplot模塊提供的Matplotlib“狀態(tài)機環(huán)境”。在這個層次上,簡單的函數(shù)用于將繪圖元素添加到當前圖形的當前軸上。使用pyplot生成可視化的圖例需要先引入matplotlib.pyplot模塊,再使用pylot中的函數(shù)繪制想要的圖形。任務(wù)2北上廣深天氣分析

本次任務(wù)是使用Matplotlib的繪圖方法,結(jié)合之前學習的NumPy和Pandas等庫的使用來實現(xiàn)北上廣深四大城市的天氣分析,其中涉及文件的讀取合并、數(shù)據(jù)的篩選清洗、數(shù)據(jù)的分組分析和聚合、折線圖的繪制、箱線圖的繪制等。本次任務(wù)的主要內(nèi)容如下:(1)讀取數(shù)據(jù)文件,合并數(shù)據(jù);(2)清洗整理數(shù)據(jù)集,篩選數(shù)據(jù);(3)編寫代碼,繪制圖表,進行分析。【任務(wù)描述】【知識準備】一、Matplotlib繪圖接口Matplotlib提供了兩種編程接口模式,分別為PyPlot編程接口(state-based)和面向?qū)ο蟮木幊探涌?object-based)。1.?PyPlot編程接口PyPlot封裝了用于繪圖的底層函數(shù)并提供了一種繪圖環(huán)境。導入PyPlot模塊,使用plt.plot()繪制圖形時,默認自動創(chuàng)建Figure以及Axes等對象以支持圖形的繪制。這樣做的優(yōu)點在于屏蔽了一些底層通用的繪圖對象的創(chuàng)建細節(jié),使操作更加簡捷。2.面向?qū)ο蟮木幊探涌诿嫦驅(qū)ο蟮木幊探涌谛枰謩觿?chuàng)建畫布(FigureCanvas)、圖對象(Figure)、Axes,所有對象組合才能完成一次完整的繪圖工作。面向?qū)ο蟮木幊探涌诘膬?yōu)點在于能夠完整地控制繪圖過程。與PyPlot接口相比,面向?qū)ο蠼涌谛枰帉懜啻a。二、Matplotlib繪圖方法Matplotlib針對不同的圖形,內(nèi)置了不同的繪圖函數(shù),通過調(diào)用不同的繪圖函數(shù)可以繪制出折線圖、條形圖、散點圖、箱形圖和熱力圖等。Matplotlib常用繪圖方法如表6-1所示。1.折線圖折線圖的作用是展示隨時間變化而變化的連續(xù)性數(shù)據(jù),適用于需要顯示相等時間間隔下數(shù)據(jù)趨勢的場景。Matplotlib中用于繪制折線圖的函數(shù)為plot(),語法格式如下所示。plt.plot(x,y,format_string,**kwargs)參數(shù)說明如下所示。(1)?x:可選參數(shù),x軸的數(shù)據(jù),可以是列表或數(shù)組。(2)?y:y軸數(shù)據(jù),可以是列表或數(shù)組。(3)?format_string:可選參數(shù),控制曲線的格式字符串。(4)?**kwargs:第二組或更多(x,y,format_string),可畫多條曲線。參數(shù)中的format_string由顏色字符、風格字符、標記字符組成,如表6-2至表6-4所示。(1)標題信息。標題信息是一個圖標的重要組成部分,通過標題信息能夠了解當前圖標想要表達的含義。為圖標添加標題信息的方法為plt.title(),括號中直接添加String類型的信息即可。(2)軸信息。PyPlot提供了兩個方法,用于設(shè)置x和y軸的描述信息,plt.xlabel設(shè)置x軸信息,plt.ylabel設(shè)置y軸描述信息,其設(shè)置方法與plt.title一致。(3)圖例名稱。每條線表示的含義一般稱為圖例名稱。設(shè)置圖例名稱的方式有兩種:第一種通過向plot方法中傳入label參數(shù)來實現(xiàn),label參數(shù)接收一個String類型的字符序列作為當前圖例的名稱,再使用plt.legend()方法使其生效;第二種是使用plt.legend()方法向線實例對象添加圖例名稱,plt.legend()方法需要在其他圖標設(shè)置完成后使用。plt.legend()方法的語法格式如下所示。plt.legend(handles,title,labels,loc)參數(shù)說明如下所示。①handles:需要所畫線條的實例對象集合。②title:為圖例添加標題。③labels:圖例名稱,能夠覆蓋plt.plot()中的label參數(shù)值。④loc:圖例位置,可取best(表示自動位置,圖例會自動放置在圖標較少的位置)、upperright、upperleft、lowerleft、lowerright、centerleft、centerright、lowercenter、uppercenter。圖例位置如圖6-10所示。使用第一種方式設(shè)置圖例。在plt.plot()方法中添加label參數(shù)設(shè)置圖例,再使用plt.legend()方法生效。使用第二種方式設(shè)置圖例。將兩條線分別賦值給兩個實例,取名為line1與line2,使用plt.legend()方法設(shè)置圖例。2.條形圖條形圖(barchart)是用寬度相同的條形的高度或長短來表示數(shù)據(jù)多少的圖形。條形圖可以橫向放置或縱向放置。分別使用橫向條形圖和縱向條形圖展示天津2000年至2004年的降雨量,如圖6-11所示。從圖6-11可以直觀地看出,在2000—2004年間,降雨量最多的年份是2003年,超過了600?mm,其次是2001年,超過了500?mm。Matplotlib中用于繪制條形圖的函數(shù)為bar()(縱向條形圖)和barh()(橫向條形圖),代碼如下所示。3.箱形圖與小提琴圖箱形圖又被稱為盒須圖、盒式圖、盒狀圖或箱線圖等,因形狀似箱子而得名,主要應(yīng)用于顯示一組數(shù)據(jù)的分散情況的統(tǒng)計圖。箱形圖在各種領(lǐng)域也經(jīng)常被使用,常用于品質(zhì)管理。箱線圖中主要包含了六個核心元素,如圖6-12所示。圖6-12中上四分位數(shù)(Q3)、中位數(shù)(Q2)、下四分位數(shù)(Q1)統(tǒng)稱為四分位數(shù),在進行四分位數(shù)計算前要對數(shù)據(jù)序列進行從小到大排序。四分位數(shù)的計算公式如下所示。Qi=i(n+1)/4其中,n表示序列中的項數(shù),四分位數(shù)說明如下所示。(1)中位數(shù)(Q2):是指一組數(shù)據(jù)排序完成后處于50%位置的數(shù)。(2)上四分位數(shù)(Q3):是指一組數(shù)據(jù)排序完成后處于75%位置的數(shù)。(3)下四分位數(shù)(Q1):是指一組數(shù)據(jù)排序完成后處于25%位置的數(shù)。圖6-12中上邊緣與下邊緣分別表示非異常范圍內(nèi)的最大值和最小值,計算上邊緣與下邊緣前要計算出四分位距(IQR)。四分位距計算公式如下所示。IQR=Q3-Q1從而得出上邊緣與下邊緣的計算公式如下所示。上邊緣=Q3+1.5IQR下邊緣=Q1-1.5IQR異常值是指大于上邊緣和小于下邊緣的數(shù)據(jù)。小提琴圖的特點是可以展示多組數(shù)據(jù)的分布狀態(tài)及概率密度。雖然與箱形圖類似,但小提琴圖能夠更好地展示密度關(guān)系,適用于數(shù)據(jù)量較大且集中展示數(shù)據(jù)密度的情況。小提琴圖如圖6-14所示。圖6-14中黑色區(qū)域表示四分位數(shù)的范圍(與箱形圖含義一致,白點表示中位數(shù),黑色區(qū)域上邊緣和下邊緣分別表示上四分位數(shù)和下四分位數(shù)),黑色線條為95%的置信區(qū)間,曲線區(qū)域內(nèi)表示數(shù)據(jù)的密度。Matplotlib中用于繪制小提琴圖的方法為violinplot(),繪制箱形圖的函數(shù)為boxplot(),代碼如下所示。xplot與violinplot()參數(shù)說明如表6-6所示。為了更方便精確地讀出圖中的數(shù)據(jù),可以在圖中添加網(wǎng)格線和替換x軸的刻度名稱。為圖添加網(wǎng)格線可使用plt.grid()方法,替換x軸刻度名稱可使用plt.xticks()方法,代碼如下所示。plt.xticks(ticks=None,labels=None)參數(shù)說明如表6-7所示。使用plt.grid()方法與plt.xticks()方法,為學生成績分布箱形圖添加與y軸刻度垂直的網(wǎng)格線,并設(shè)置x軸刻度標簽。4.餅圖餅圖又稱為餅狀圖,表現(xiàn)為一個劃分為幾個扇形區(qū)域的圓形統(tǒng)計圖表,通常用于描述量、頻率或百分比之間的相對關(guān)系。展示一個月內(nèi)各類型家庭支出占比的餅圖如圖6-17所示。Matplotlib中用于繪制餅圖的方法是pie(),代碼如下所示。參數(shù)說明如表6-8所示。5.散點圖散點圖是指在回歸分析中,數(shù)據(jù)點在直角坐標系平面上的分布圖。散點圖表示因變量隨自變量而變化的大致趨勢,據(jù)此可以選擇合適的函數(shù)對數(shù)據(jù)點進行擬合。例如,展示汽車時速與剎車距離的關(guān)系,如圖6-18所示。Matplotlib中用于繪制散點圖的方法為scatter(),代碼如下所示。plt.scatter(x,y,s=20,c=None,marker='o',alpha=None)參數(shù)說明如表6-9所示。6.直方圖在繪制直方圖前,需要對整體數(shù)據(jù)進行隨機抽取采樣,并加以整理,再繪制為直方圖。直方圖是用于了解數(shù)據(jù)的分布情況,更直觀地看出數(shù)據(jù)的位置狀態(tài)、離散程度和分布形態(tài)的常用工具。直方圖如圖6-19所示。以某零件的生產(chǎn)為例,生產(chǎn)前客戶會針對該零件提出要求(也就是規(guī)格),規(guī)格一般包含規(guī)格上限與規(guī)格下限,在規(guī)格上下限內(nèi)的產(chǎn)品即符合規(guī)格,生產(chǎn)過程中廠家會對產(chǎn)品進行抽樣檢查,檢驗產(chǎn)品是否符合規(guī)格。使用直方圖與規(guī)格進行比較時,直方圖可分為兩類,即合規(guī)型與不合規(guī)型。1)合規(guī)型合規(guī)型表示產(chǎn)品分布滿足產(chǎn)品規(guī)格。具體可分為完美型、一側(cè)無余率、雙側(cè)無余率和余率過大。其中,完美型為產(chǎn)品的預(yù)訂規(guī)格均值與實際產(chǎn)品規(guī)格的均值呈重合狀態(tài),且實際產(chǎn)品規(guī)格的上下限與預(yù)訂產(chǎn)品規(guī)格的上下限距離適中。證明在產(chǎn)品規(guī)格控制方面呈理想狀態(tài),可繼續(xù)按照該標準生產(chǎn)。完美型如圖6-20所示。一側(cè)無余率表示產(chǎn)品規(guī)格的分布均在預(yù)訂規(guī)格值內(nèi),但實際產(chǎn)品的上限或下限緊貼預(yù)訂產(chǎn)品規(guī)格的上限或下限,造成單側(cè)擁塞,另一邊余率過大,在生產(chǎn)過程中產(chǎn)品的規(guī)格稍有變化,就會產(chǎn)生不良產(chǎn)品。應(yīng)及時找到原因,且設(shè)法使制品中心值與規(guī)格中心值吻合。一側(cè)無余率如圖6-21所示。兩側(cè)無余率與一側(cè)無余率類似,表示產(chǎn)品分布的上下限與產(chǎn)品規(guī)格上下限重合,這種情況雖然能夠滿足規(guī)格要求,但在生產(chǎn)過程中稍有波動就會產(chǎn)生不良產(chǎn)品,最好是平均值保持原狀,但變異方面采取縮小的對策。雙側(cè)無余率如圖6-22所示。余率過大表示產(chǎn)品分布過度集中,產(chǎn)品分布范圍遠遠小于規(guī)格范圍,證明產(chǎn)品生產(chǎn)能力遠遠要高于規(guī)格的要求,雖然不容易產(chǎn)生不良產(chǎn)品,但如果這種高標準是通過增加成本做到的,并不是一個良好的現(xiàn)象。應(yīng)考慮放寬規(guī)格界限,降低人力以及物力的成本。余率過大如圖6-23所示。2)不合規(guī)型不合規(guī)型表示呈現(xiàn)出的狀態(tài)包含不符合規(guī)格的產(chǎn)品,不合規(guī)型包含三種狀態(tài):單邊不良、雙邊不良和離島現(xiàn)象。單邊不良表示產(chǎn)品分布小于規(guī)格下限或大于規(guī)格上限。通俗地講就是產(chǎn)品分布中包含不合規(guī)產(chǎn)品,需要及時進行調(diào)整,糾正平均值位置以提高品質(zhì)。平均值偏向一邊如圖6-24所示。雙邊不良表示產(chǎn)品分散程度過大,超過了規(guī)格的上限與下限,表示當前生產(chǎn)能力不滿足規(guī)格,應(yīng)對生產(chǎn)技術(shù)以及人員做出調(diào)整,或考慮規(guī)格是否過于嚴格。雙邊不良如圖6-25所示。離島現(xiàn)象有“離島”產(chǎn)品出現(xiàn),且發(fā)生不良現(xiàn)象,說明過程有異常原因存在,應(yīng)調(diào)查離島的原因,判明離島原因(通常為特異原因)并予以去除。離島現(xiàn)象如圖6-26所示。Matplotlib中用于繪制直方圖的方法為hist(),代碼如下所示。參數(shù)說明如表6-10所示。生成滿足正態(tài)分布的實驗數(shù)據(jù),使用hist()方法繪制柱狀圖,統(tǒng)計區(qū)間設(shè)置為40,并設(shè)置顯示頻率統(tǒng)計結(jié)果,代碼如下所示。結(jié)果如圖6-27所示。三、創(chuàng)建子圖上述繪圖方法分別將圖形繪制到了不同的figure中。如果想要將兩個圖繪制到同一個figure中,可以借助plt.subplots()方法,該方法能夠返回一個包含figure和axes對象的元祖,并且可以由兩個變量分別接收,通常只會用到axes對象。plt.subplots()方法代碼如下所示。fig,axs=plt.subplots(nrows=1,ncols=1,figsize=(int,int))參數(shù)說明如下所示。(1)?nrows與ncols:表示子圖網(wǎng)格的行/列數(shù)。(2)?figsize:用于設(shè)置圖的大小。子圖網(wǎng)格生成后,使用axs[int]的方式為每個子圖添加圖形,axs下標從0開始,分別為axs[0]和axs[1]添加縱向條形圖和橫向條形圖。使用subplots()方式繪制圖標后,

溫馨提示

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

評論

0/150

提交評論