版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
大數據分析工具Matplotlib用法目錄TOC\o"1-2"\h\u289751.1初級繪制 3259421.使用默認配置 5159582.改變線條的顏色和粗細 774703.設置邊界 7236964.設置刻度 7323505.設置刻度標簽 8240706.移動軸線 92627.添加圖例 9242048.注解某些點 1033491.2圖像、子區(qū)、子圖、刻度 1171931.圖像 1139372.子圖 12174033.坐標軸 12277884.刻度 1227351.3其他種類的繪圖 14266121.常規(guī)繪圖 14275312.散點圖 1518573.條形圖 1657854.等高線圖 18325955.餅圖 1916146.矢量圖 20239587.極軸圖 21174148.三維繪圖 22309861.4總結 23大數據分析工具Matplotlib用法Matplotlib是Python2D繪圖領域使用廣泛的套件。它能讓使用者很輕松地將數據圖形化,并且提供多樣化的輸出格式。本章將會探索Matplotlib的常見用法。在Matplotlib中使用最多的模塊是Pyplot。Pylab是Matplotlib面向對象繪圖庫的一個接口。它的語法和Matlab十分相近。也就是說,它主要的繪圖命令和Matlab對應的命令有相似的參數。初級繪制使用Matplotlib庫繪圖,原理很簡單,就是下面這5步:創(chuàng)建一個圖紙(figure)。在圖紙上創(chuàng)建一個或多個繪圖(plotting)區(qū)域(也叫子圖、坐標系/軸)。在plotting區(qū)域上描繪點、線等各種marker。為plotting添加修飾標簽(繪圖線上的或坐標軸上的)。其他各種DIY。在上面的過程中,主要涉及下面3個元素:變量。函數。圖紙(figure)和子圖(axes,也可以理解成坐標軸)。其中,變量和函數通過改變figure和axes中的元素(例如標題、標簽、點和線等)一起描述figure和axes,也就是在畫布上繪圖。圖片結構如圖5.1所示。圖5.1Matplotlib庫繪圖圖片結構這一節(jié)將從簡到繁:先嘗試用默認配置在同一張圖上繪制正弦和余弦函數圖像,然后逐步美化它。下面取得正弦函數和余弦函數的值:frompylabimport*frompylabimport*X=np.linspace(-np.pi,np.pi,256,endpoint=True)C,S=np.cos(X),np.sin(X)X現在是一個NumPy數組,包含從-π到+π(包含π)等差分布的256個值。C是正弦值(256個值),S是余弦值(256個值)??梢栽贗Python的交互模式下測試代碼,也可以執(zhí)行Python文件。 pythonexercise_1.py 使用默認配置Matplotlib的默認配置都允許用戶自定義??梢哉{整大多數的默認配置:圖片大小和分辨率(dpi)、線寬、顏色、風格、坐標軸以及網格的屬性、文字與字體屬性等。不過,Matplotlib的默認配置在大多數情況下已經做得足夠好,只在很少的情況下才會更改這些默認配置。frompylabimport*frompylabimport*X=np.linspace(-np.pi,np.pi,256,endpoint=True)C,S=np.cos(X),np.sin(X)plot(X,C)plot(X,S)show()Matplotlib使用默認配置的正余弦圖如圖5.2所示。下面的代碼中展現了Matplotlib的默認配置并輔以注釋說明,這部分配置包含有關繪圖樣式的所有配置。代碼中的配置與默認配置完全相同,可以在交互模式中修改其中的值來觀察效果。##導入Matplotlib的所有內容(NymPy可以用np這個名字)frompylabimport*#創(chuàng)建一個8*6點(point)的圖,并設置分辨率為80figure(figsize=(8,6),dpi=80)#創(chuàng)建一個新的1*1的子圖,接下來的圖樣繪制在其中的第1塊(也是唯一的一塊)subplot(1,1,1)X=np.linspace(-np.pi,np.pi,256,endpoint=True)C,S=np.cos(X),np.sin(X)#繪制余弦曲線,使用藍色的、連續(xù)的、寬度為1(像素)的線條plot(X,C,color="blue",linewidth=1.0,linestyle="-")#繪制正弦曲線,使用綠色的、連續(xù)的、寬度為1(像素)的線條plot(X,S,color="green",linewidth=1.0,linestyle="-")#設置橫軸的上下限xlim(-4.0,4.0)#設置橫軸記號xticks(np.linspace(-4,4,9,endpoint=True))#設置縱軸的上下限ylim(-1.0,1.0)#設置縱軸記號yticks(np.linspace(-1,1,5,endpoint=True))##以分辨率72來保存圖片#savefig("exercice_2.png",dpi=72)#在屏幕上顯示show()改變線條的顏色和粗細以藍色和紅色分別表示余弦和正弦函數,而后將線條變粗一點。在水平方向拉伸一下整個圖,如圖5.3所示。圖5.3改變線條的顏色和粗細figure(figsize=(10,6),dpi=80)figure(figsize=(10,6),dpi=80)plot(X,C,color="blue",linewidth=2.5,linestyle="-")plot(X,S,color="red",linewidth=2.5,linestyle="-")設置邊界當前的圖像邊界有點太緊了,而且想要預留一點空間使數據點更清晰。xlim(X.min()*1.1,xlim(X.min()*1.1,X.max()*1.1)ylim(C.min()*1.1,C.max()*1.1)設置刻度當前的刻度并不理想,因為不顯示正余弦中我們感興趣的值(+/-π,+/-π/2)。我們將進行更改,讓其只顯示這些值。xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi])yticks([-1,0,+1])xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi])yticks([-1,0,+1])效果如圖5.4所示。圖5.4設置刻度設置刻度標簽刻度已經設置得很合適了,但是其標簽并不是很清楚,可以猜出3.142是π,但是最好讓它更直接。當設置刻度值時,也可以在第二個參數列表中提供相應的標簽。注意,用latex可以獲得更好渲染的標簽。效果如圖5.5所示。圖5.5設置刻度標簽移動軸線軸線(spines)是連接刻度標志和標示數據區(qū)域邊界的線。它們可以被放置在任意地方,現在是軸的邊界。改變這點,讓它們位于中間。一共有4個軸線(上/下/左/右)。通過將它們的顏色設置成None舍棄位于頂部和右部的軸線。然后把底部和左部的軸線移動到數據空間坐標中的零點。ax=gca()ax.spines['right'].set_color('none')ax.spines['top'].set_color('none')ax.xaxis.set_ticks_position('bottom')ax.spines['bottom'].set_position(('data',0))ax.yaxis.set_ticks_position('left')ax.spines['left'].set_position(('data',0))ax=gca()ax.spines['right'].set_color('none')ax.spines['top'].set_color('none')ax.xaxis.set_ticks_position('bottom')ax.spines['bottom'].set_position(('data',0))ax.yaxis.set_ticks_position('left')ax.spines['left'].set_position(('data',0))添加圖例下面在圖片左上角添加一個圖例。這僅僅需要向plot命令添加關鍵字參數label(之后將被圖例框使用)。plot(X,C,color="blue",linewidth=2.5,linestyle="-",label="cosine")plot(X,S,color="red",linewidth=2.5,linestyle="-",label="sine")plot(X,C,color="blue",linewidth=2.5,linestyle="-",label="cosine")plot(X,S,color="red",linewidth=2.5,linestyle="-",label="sine")legend(loc='upperleft')效果如圖5.6所示。圖5.6添加圖例注解某些點現在使用annotate命令注解一些我們感興趣的點。選擇2π/3作為想要注解的正弦值和余弦值。我們將在曲線上做一個標記和一個垂直的虛線。然后,使用annotate一個箭頭和一些文本。效果如圖5.7所示。圖5.7注解某些點圖像、子區(qū)、子圖、刻度到目前為止,我們都用隱式的方法來繪制圖像和坐標軸。在快速繪圖中,這種方法很方便。我們也可以顯式地控制圖像(Figures)、子圖(Axes)和坐標軸。Matplotlib中的“圖像”指的是用戶在界面上看到的整個窗口內容。在圖像里面有所謂的“子圖”。子圖的位置是由坐標網格確定的,而“坐標軸”卻不受此限制,可以放在圖像的任意位置。我們已經隱式地使用過圖像和子圖:在調用plot函數的時候,Matplotlib調用gca()函數和gcf()函數來獲取當前的坐標軸和圖像。如果無法獲取圖像,就會調用figure()函數來創(chuàng)建一個圖像,嚴格地說,是用subplot(1,1,1)創(chuàng)建一個只有一個子圖的圖像。圖像所謂圖像,就是GUI里以“Figure #”為標題的那些窗口。圖像編號從1開始,與Matlab的風格一致,而與Python從0開始編號的風格不同。表5.1所示的參數是圖像的屬性。表5.1圖像的屬性參數除了圖像數量這個參數外,其余的參數都很少修改?!啊痢眮黻P閉窗口,Matplotlib還提供了名為close的函數來關閉這個窗口。和其他對象一樣,你可以使用setp或者set_something來設置圖像的屬性。子圖用戶可以用子圖來將圖樣(Plot)放在均勻的坐標網格中,如圖5.8所示。用subplot函數的時候需要指明網格的行列數量,以及希望將圖樣放在哪個網格區(qū)域中。此外,gridspec函數的功能更強大,也可以選擇它來實現這個功能。圖5.8子圖樣式坐標軸坐標軸和子圖的功能類似,不過它可以放在圖像的任意位置,樣例圖如圖5.9所示。因此,如果希望在一幅圖中繪制一個小圖,就可以用這個功能??潭攘己玫目潭仁菆D像的重要組成部分。Matplotlib的刻度系統(tǒng)里的各個細節(jié)都可以由用戶個性化配置。可以用TickLocators來指定在哪些位置放置刻度,用TickFormatters來調整刻度的樣式。主要和次要的刻度可以以不同的方式呈現。默認情況下,每一個次要的刻度都是隱藏的,也就是說,次要刻度列表是空的(NullLocator)。坐標軸樣例圖如圖5.9所示。圖5.9坐標軸樣例圖表5.2所示為不同需求設計的一些Locators。這些Locators都是matplotlib.ticker.Locator的子類,用戶可以據此定義自己的Locator。以日期為刻度特別復雜,因此Matplotlib提供了matplotlib.dates來實現這一功能。表5.2刻度Locators這些定位器源于Matplotlib的基類matplotlib.ticker.Locator。用戶可以源于它創(chuàng)建自己的定位器。處理時間刻度可能非常棘手,因此,Matplotlib在matplotlib.dates中提供了特殊的定位器。其他種類的繪圖常規(guī)繪圖下面嘗試生成圖5.10所示的圖形。圖5.10普通圖提示:需要使用fill_between命令。散點圖下面嘗試生成圖5.11所示的圖形,注意標記大小、顏色和透明度。圖5.11散點圖提示:色彩由(X,Y)角度給出。條形圖下面嘗試生成圖5.12所示的圖形。圖5.12條形圖提示:要注意文本對齊。等高線圖下面嘗試生成圖5.13所示的圖形。圖5.13等高線圖餅圖下面嘗試生成圖5
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 17283.2-2026天然氣水分的測定第2部分:用振蕩頻差法測定水含量
- 鐵路車輛制修工崗前實操能力考核試卷含答案
- 抗生素酶裂解工操作安全知識考核試卷含答案
- 船模制作工操作能力考核試卷含答案
- 漿紗漿染工安全培訓效果考核試卷含答案
- 水上救生員操作評估競賽考核試卷含答案
- 淀粉及淀粉糖制造工創(chuàng)新應用評優(yōu)考核試卷含答案
- 酒店員工工作紀律與獎懲制度
- 酒店客房鑰匙卡回收管理制度
- 超市員工保密制度
- 2025年秋季散學典禮校長講話:以四馬精神赴新程攜溫暖期許啟寒假
- 2026貴州省黔晟國有資產經營有限責任公司面向社會招聘中層管理人員2人備考考試試題及答案解析
- 2025年營養(yǎng)師考試練習題及答案
- 2026中國電信四川公用信息產業(yè)有限責任公司社會成熟人才招聘備考題庫及答案詳解一套
- 通信工程冬季施工安全培訓
- 中醫(yī)外科乳房疾病診療規(guī)范診療指南2023版
- 壓實瀝青混合料密度 表干法 自動計算
- 田口三次設計
- 《我的戒煙》閱讀答案
- GB/T 7442-2007角向磨光機
- GB/T 324-2008焊縫符號表示法
評論
0/150
提交評論