版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第9章
Matplotlib
《Python數(shù)據(jù)分析與應用》MatplotlibMatplotlib發(fā)布于2007年,在其函數(shù)設計時參考MATLAB相關函數(shù),故命名以“Mat”開頭,“Plot”表示繪圖,“Lib”為集合。Matplotlib可以繪制線圖、直方圖、餅圖、散點圖以及誤差線圖等各種圖形,主要用于將NumPy統(tǒng)計計算結果可視化。Matplotlib官方網(wǎng)址為:/Matplotlib繪圖步驟Matplotlib畫圖流程大致分為如下步驟:步驟1:figure函數(shù)創(chuàng)建畫布,決定是否創(chuàng)建子圖。步驟2:使用plot函數(shù)繪制圖形。步驟3:設置繪圖對象的各種屬性。importmatplotlib.pyplotaspltfig=plt.figure()ax=fig.add_subplot(111)ax.set(xlim=[0.5,4.5],ylim=[-2,8],title='AnExample Axes‘,ylabel='Y-Axis',xlabel='X-Axis')plt.show()
繪圖函數(shù)Matplotlib中繪圖函數(shù)為plot,使用語法如下:plt.plot(x,y,color,marker,linestyle,**kwargs)參數(shù)接收值說明默認值x,yarray表示
x軸與
y軸對應的數(shù)據(jù);無colorstring表示折線的顏色;Nonemarkerstring表示折線上數(shù)據(jù)點處的類型;Nonelinestylestring表示折線的類型;-linewidth數(shù)值線條粗細:linewidth=1.=5.=0.31alpha
0~1之間的小數(shù)表示點的透明度;Nonelabelstring數(shù)據(jù)圖例內(nèi)容:label=‘實際數(shù)據(jù)’None子圖Matplotlib提供如下三種方式繪制子圖:(1)通過plt的subplot;(2)通過figure的add_subplot;(3)通過plt的subplots。子圖subplot(233)表示在當前畫布的右上角創(chuàng)建一個兩行三列的繪圖區(qū)域,選擇在第3個位置繪制子圖二維圖函數(shù)名稱描述函數(shù)名稱描述Bar繪制條形圖Polar繪制極坐標圖Barh繪制水平條形圖Scatter繪制x與y的散點圖Boxplot繪制箱型圖Stackplot繪制堆疊圖Hist繪制直方圖Stem繪制二維離散數(shù)據(jù)(“火柴圖”)his2d繪制2D直方圖Step繪制階梯圖Pie繪制餅狀圖Quiver繪制一個二維按箭頭線性圖使用plot函數(shù)實現(xiàn)畫線。plot函數(shù)的第一個數(shù)組是橫軸的值,第二個數(shù)組是縱軸的值,最后一個參數(shù)表示線的顏色。importmatplotlib.pyplotaspltplt.plot([1,2,3],[3,6,9],'-r')plt.plot([1,2,3],[2,4,9],':g')plt.show()
散點圖
scatter函數(shù)用來繪制散點圖。scatter函數(shù)也需要兩組配對的數(shù)據(jù)指定x和y軸的坐標。importmatplotlib.pyplotaspltimportnumpyasnp
N=20
plt.scatter(np.random.rand(N)*100,np.random.rand(N)*100,c='r',s=100,alpha=0.5)plt.scatter(np.random.rand(N)*100,np.random.rand(N)*100,c='g',s=200,alpha=0.5)plt.scatter(np.random.rand(N)*100,np.random.rand(N)*100,c='b',s=300,alpha=0.5)
plt.show()餅狀圖pie函數(shù)用來繪制餅狀圖,用來表達集合中各個部分的百分比。importnumpyasnplabels=['Mon','Tue','Wed','Thu','Fri','Sat','Sun']data=np.random.rand(7)*100plt.pie(data,labels=labels,autopct='%1.1f%%')plt.axis('equal')plt.legend()plt.show()條形圖bar函數(shù)用來繪制條形圖,用來描述一組數(shù)據(jù)的對比情況,例如:一周七天,每天的城市車流量。直方圖直方圖用hist函數(shù)用來繪制,看起來與條形圖有些類似。但它們的含義是不一樣,直方圖描述了某個范圍內(nèi)數(shù)據(jù)出現(xiàn)的頻度。箱線圖importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltnp.random.seed(2)df=pd.DataFrame(np.random.rand(5,4),columns=['A','B','C','D'])#生成0~1的5*4維度數(shù)據(jù)并存入4列DataFrame中
df.boxplot()plt.show()#顯示圖像三維圖三維圖創(chuàng)建主要有如下兩種方式:(1)利用關鍵字projection='3d’來實現(xiàn)(2)通過從mpl_toolkits.mplot3d導入對象Axes3D來實現(xiàn)三維曲線圖frommpl_toolkitsimportmplot3dimportmatplotlib.pyplotaspltimportnumpyasnp
ax=plt.axes(projection='3d')
#三維線的數(shù)據(jù)zline=np.linspace(0,15,1000)xline=np.sin(zline)yline=np.cos(zline)ax.plot3D(xline,yline,zline,'gray')三維散點圖importmatplotlib.pyplotaspltimportnumpyasnp
ax=plt.axes(projection='3d')
zdata=15*np.random.random(100)xdata=np.sin(zdata)+0.1*np.random.randn(100)ydata=np.cos(zdata)+0.1*np.random.randn(100)ax.scatter3D(xdata,ydata,zdata,c=zdata,cmap='Reds')三維等高線圖frommpl_toolkitsimportmplot3dimportmatplotlib.pyplotaspltimportnumpyasnp
deff(x,y):returnnp.sin(np.sqrt(x**2+y**2))x=np.linspace(-6,6,30)y=np.linspace(-6,6,30)X,Y=np.meshgrid(x,y)Z=f(X,Y)
fig=plt.figure()ax=plt.axes(projection='3d')ax.contour3D(X,Y,Z,50,cmap='binary')ax.set_xlabel('x')ax.set_ylabel('y')ax.set_zlabel('z')#俯仰角設為60度,把方位角調(diào)整為35度ax.view_init(60,35)動態(tài)圖matplotlib畫圖有阻塞和交互兩種顯示模式:(1)阻塞模式:采用plt.show顯示圖片,且圖片關閉之前代碼將阻塞在該行(2)交互模式:采用plt.plot顯示圖片,且不阻塞代碼的繼續(xù)運行。Matplotlib中默認是使用阻塞模式。
matplotlib的animation模塊實現(xiàn)動態(tài)圖較為繁瑣。而交互式繪圖和暫停功能較為簡單,通過“畫圖-->清理-->畫圖”的循環(huán)實現(xiàn)動態(tài)效果。相關函數(shù)如下所示:plt.ion():打開交互模式plt.ioff():關閉交互模式plt.clf():清除當前的Figure對象plt.cla():清除當前的Axes對象plt.pause():暫停功能概率分布泊松分布正態(tài)分布均勻分布二項分布泊松分布importnumpyasnpimportmatplotlib.pyplotaspltlist=np.random.poisson(9,10000)plt.hist(list,bins=8,color='b',alpha=0.4,edgecolor='r')plt.show()正態(tài)分布importnumpyasnpimportmatplotlib.pyplotaspltlist=np.random.normal(0,1,10000)plt.hist(list,bins=8,color='r',alpha=0.5,edgecolor='r')plt.show()均勻分布importnumpyasnpimportmatplotlib.pyplotasplt
list=np.random.uniform(0,10,10000)plt.hist(list,bins=7,color='g',alpha=0.4,edgecolor='b')plt.show()二項分布importnumpyasnpimportmatplotlib.pyplotaspltlist=np.random.binomial(n=10,p=0.5,size=10000)plt.hist(list,bins=8,color='g',alpha=0.4,edgecolor='b')plt.show()三維圖三維圖創(chuàng)建主要有如下兩種方式利用關鍵字projection='3d’來實現(xiàn)通過從mpl_toolkits.mplot3d導入對象Axes3D來實現(xiàn)三維曲線圖frommpl_toolkitsimportmplot3dimportmatplotlib.pyplotaspltimportnumpyasnp
ax=plt.axes(projection='3d')
#三維線的數(shù)據(jù)zline=np.linspace(0,15,1000)xline=np.sin(zline)yline=np.cos(zline)ax.plot3D(xline,yline,zline,'gray')三維散點圖importmatplotlib.pyplotaspltimportnumpyasnp
ax=plt.axes(projection='3d')
zdata=15*np.random.random(100)xdata=np.sin(zdata)+0.1*np.random.randn(100)ydata=np.cos(zdata)+0.1*np.random.randn(100)ax.scatter3D(xdata,ydata,zdata,c=zdata,cmap='Reds')三維等高線圖import
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年05月中國郵政儲蓄銀行總行內(nèi)控合規(guī)部(反洗錢中心)社會招考筆試歷年參考題庫附帶答案詳解
- 二零二五年度養(yǎng)老社區(qū)入住與子女贍養(yǎng)協(xié)議3篇
- 2024年中國浴室套件市場調(diào)查研究報告
- 2025年度圖書館多媒體資源制作外包服務協(xié)議3篇
- 2024年團頭魴苗項目可行性研究報告
- 《慣性式弛張篩的動力學分析》
- 2024年中國手動操作控制器市場調(diào)查研究報告
- 2025年度信用反擔保合同正規(guī)范本助力企業(yè)融資創(chuàng)新3篇
- 2024年中國姻緣餅市場調(diào)查研究報告
- 2024年05月湖北九江銀行總行部門社會招考(524)筆試歷年參考題庫附帶答案詳解
- 物料吊籠安全技術標準
- 工程項目施工方案比選
- 盾構始發(fā)施工技術要點PPT(44頁)
- 甲烷(沼氣)的理化性質(zhì)及危險特性表
- 某鋼鐵有限責任公司管理專案報告書---提升配電系統(tǒng)管理水平降低變配電裝置事故率
- 促銷費用管理辦法15
- 《三國演義》整本書閱讀任務單
- GB 13296-2013 鍋爐、熱交換器用不銹鋼無縫鋼管(高清版)
- 企業(yè)信用管理制度
- 中醫(yī)院中藥的飲片處方用名與調(diào)劑給付規(guī)定
- 鉆孔灌注樁及后注漿施工方案施工方案
評論
0/150
提交評論