




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第9章Matplotlib可視化學(xué)習(xí)目標(biāo)
Matplotlib基礎(chǔ)
Matplotlib常見(jiàn)圖表
Matplotlib的3D圖形和多子圖22025/2/199.1.1Numpy基礎(chǔ)功能1、文件的輸入和輸出2、創(chuàng)建數(shù)組3、查看變量屬性4、復(fù)制、排序和維度變化5、添加、刪除元素32025/2/191文件的輸入和輸出文件的輸入和輸出功能1、np.loadtxt(‘file.txt’)讀取file.txt文件2、np.loadtxt(‘file.txt’,delimiter=‘\t’,dtype=str,encoding=‘utf-8’)讀取中文文件,delimiter表示字符串的分割符是'\t',dtype=str表示輸入文本的類型是字符串,encoding='utf-8'表示中文編碼是utf-8。3、np.genfromtxt(‘file.csv’,delimiter=‘,’,dtype=str,encoding=‘utf-8‘)讀取file.csv文件,分隔符是',',dtype=str表示輸入文本的類型是字符串,encoding='utf-8'表示中文編碼是utf-8。42025/2/191文件的輸入和輸出4、np.savetxt(‘file.txt’,arr,delimiter=‘,’)將arr數(shù)組存儲(chǔ)為file.txt文件。5、np.savetxt(‘file.csv’,arr,delimiter=‘,‘)將arr數(shù)組存儲(chǔ)為file.csv文件,其中字符串的分隔符為“,”。6、Numpy支持npy文件,npy文件與Matlab的mat文件相似,是Numpy支持的數(shù)據(jù)文件,load(‘file.npy’)載入file.npy文件。7、save(file,arr,allow_pickle,fix_imports)將arr數(shù)組保存為file.npy文件,allow_pickle表示采用序列化的存儲(chǔ)方式。52025/2/192創(chuàng)建數(shù)組1、np.array()創(chuàng)建ndarray數(shù)組。np.array([1,2,3])可以創(chuàng)建一維數(shù)組,np.array([(1,2,3),(4,5,6)])創(chuàng)建二維數(shù)組,np.array([1,2,3,4,5,6],ndmin=3)創(chuàng)建一個(gè)三維數(shù)組。2、np.zeros()創(chuàng)建指定大小的數(shù)組,數(shù)組中的所有元素為0。order=’C’表示用于C語(yǔ)言的行數(shù)組,order=’F’表示用于Fortran語(yǔ)言的列數(shù)組。np.zeros(3)創(chuàng)建一個(gè)含有3個(gè)0元素的數(shù)組。3、np.ones()用于創(chuàng)建數(shù)組元素為1的指定形狀的數(shù)組。np.ones((3,4))創(chuàng)建一個(gè)3行4列的數(shù)組。62025/2/192創(chuàng)建數(shù)組4、np.linspace(start,stop,num)用于創(chuàng)建一個(gè)一維數(shù)組。數(shù)組是一個(gè)等差數(shù)列序列,start是序列的起始值,stop是序列的終止值,num是生成的等步長(zhǎng)的樣本數(shù)量。5、np.arange(start,stop,step,dtype)從數(shù)值范圍創(chuàng)建數(shù)組,其中start是起始值,默認(rèn)為0,stop為終止值(不包含),step是步長(zhǎng),默認(rèn)為1,dtype返回ndarray的數(shù)據(jù)類型。6、np.eye(n,m,k,dtype,order)創(chuàng)建一個(gè)2維的對(duì)角矩陣,n是對(duì)角矩陣的行,m是對(duì)角矩陣的列,m默認(rèn)與n相等,k是對(duì)角線的索引,np.eye(3,3)創(chuàng)建一個(gè)3行3列的對(duì)角矩陣。對(duì)角線的起始下標(biāo)是1,而不是標(biāo)準(zhǔn)對(duì)角矩陣的0。72025/2/192創(chuàng)建數(shù)組7、np.full(shape,fill_value,dtype,order)創(chuàng)建一個(gè)給定行、列的填充矩陣,填充值是fill_value,np.full((2,3),8)產(chǎn)生一個(gè)2行3列的數(shù)組,填充值是8。8、np.random.rand(d0,d1,...,dn)創(chuàng)建一個(gè)N維的隨機(jī)數(shù)組,d0是第一個(gè)維度,d1是第二個(gè)維度,dn是第n個(gè)維度,隨機(jī)數(shù)是[0,1)均勻分布的抽樣。np.random.rand(4,5)產(chǎn)生4行5列隨機(jī)數(shù)組,數(shù)組元素值是[0,1)均勻分布的抽樣。9、numpy.random.randint(low,high,size,dtype)創(chuàng)建離散均勻分布的整數(shù),整數(shù)值大于等于low,小于high。np.random.randint(5,size=(2,3))產(chǎn)生一個(gè)2行3列的隨機(jī)整數(shù)數(shù)組,數(shù)組元素值在0~4之間。82025/2/193查看變量屬性1、ndarray.size返回?cái)?shù)組的元素個(gè)數(shù),np.array([1,2,3,4,5,6]),有6個(gè)元素。2、ndarray.shape返回?cái)?shù)組的形狀,即ndarray的行、列數(shù)。3、ndarray.dtype返回ndarray數(shù)組元素的類型。4、ndarray.astype(dtype)將數(shù)組的元素類型轉(zhuǎn)換為dtype類型,x=x.astype(float)將x由int32類型變量轉(zhuǎn)化為float類型變量。5、ndarray.tolist()將數(shù)組轉(zhuǎn)換為Python列表,x=x.tolist()將x由ndarray數(shù)組轉(zhuǎn)化為Python的列表變量。92025/2/194復(fù)制、排序和維度變化1、np.copy(ndarray)復(fù)制ndarray數(shù)組。2、ndarray.view(dtype)使用不同的數(shù)據(jù)類型構(gòu)造數(shù)組的內(nèi)存視圖。3、arr.sort(axis)對(duì)arr的特定軸axis進(jìn)行排序。4、arr.flatten()將二維數(shù)組arr轉(zhuǎn)換為一維數(shù)組。5、arr.T表示對(duì)數(shù)組arr進(jìn)行轉(zhuǎn)置。6、arr.reshape(row,col)將數(shù)組arr進(jìn)行變形。7、ndarray.resize(new_shape,refcheck=True)將數(shù)組重新調(diào)整行和列。102025/2/195添加、刪除元素1、np.append(arr,values)在arr數(shù)組的尾部添加values。2、np.insert(arr,obj,values,axis=None)在數(shù)組指定的下標(biāo)處插入新的元素,如x=np.array([1,2,3]),np.insert(x,2,4)后,x返回值為array([1,2,4,3]),即4被插入到x變量索引為2的位置。3、np.delete(arr,obj,axis)表示刪除元素,如x=array([[1,2],[4,5]]),np.delete(x,1,axis=0)刪除行索引為1的行,x的返回值為array([[1,2]]),np.delete(x,1,axis=1)刪除列索引為1的列,x的返回值為array([[1],[4]])。112025/2/199.1.2Numpy高級(jí)功能1、變量合并、分割2、索引、切片和子集3、標(biāo)量運(yùn)算4、向量運(yùn)算5、統(tǒng)計(jì)122025/2/191變量合并、分割1、np.concatenate((a1,a2,...),axis,out)對(duì)a1、a2多個(gè)數(shù)組進(jìn)行合并,其中合并的方向可以是按照行進(jìn)行合并,或者按照列進(jìn)行合并。2、np.split(ary,indices_or_sections,axis)將一個(gè)數(shù)組分割為多個(gè)子數(shù)組,其中ary是要分割的數(shù)組,axis=0按行分割,axis=1表示按照列分割。indices_or_sections為N時(shí),表示將數(shù)組分割為N部分。indices_or_sections為數(shù)組時(shí),表示按索引分割,np.split(x,[1,3],axis=1)表示在第一列、第三列分割數(shù)組x。132025/2/192索引、切片和子集1、Numpy支持的數(shù)組的索引下標(biāo)從0開(kāi)始。2、切片操作是對(duì)數(shù)組的一段區(qū)間的操作,切片與變量維度一致,區(qū)間變量之間使用“,”分割。切片區(qū)間的表達(dá)式是“start:stop”,其中的start表示切片的開(kāi)始位置,stop表示切片的結(jié)束位置,不包括stop結(jié)束位置,如果x是一維數(shù)組,則x[:2]返回一維數(shù)組的0、1元素。3、子集篩選也是Numpy庫(kù)的提供的一項(xiàng)功能,通過(guò)布爾條件可以對(duì)數(shù)組進(jìn)行篩選,篩選后的返回值是與原數(shù)組相同維度的布爾數(shù)組,如x=np.array([1,2,3,4]),則x<3的返回值為array([True,True,False,False]),x[x<3]返回小于3的元素,返回值為array([1,2])。142025/2/193標(biāo)量運(yùn)算1、Numpy在進(jìn)行標(biāo)量運(yùn)算時(shí),向量與標(biāo)量的維度不同,因此首先需要利用廣播機(jī)制(Broadcast)對(duì)不同形狀(shape)的數(shù)組轉(zhuǎn)化為相同的維度,然后再進(jìn)行數(shù)值計(jì)算。如x=np.array([[1,2],[3,4]]),x+1調(diào)用廣播機(jī)制,將1轉(zhuǎn)化為np.array([[1,1],[1,1]]),然后與x相加,運(yùn)算返回值為array([[2,3],[4,5]])。2、np.add(arr,value)方法、np.subtract(arr,value)方法、np.multiply(arr,value)和np.divide(arr,value)都支持廣播機(jī)制152025/2/194向量運(yùn)算1、np.add(arr1,arr2)2、np.subtract(arr1,arr2)3、np.multiply(arr1,arr2)4、np.divide(arr1,arr2)5、np.power(arr1,arr2)向量求冪6、np.sqrt(arr)求平方根7、np.sin(arr)求sine函數(shù)值8、np.log(arr)求對(duì)數(shù)值162025/2/195統(tǒng)計(jì)1、np.mean(x,axis=0)2、np.sum(x,axis)求和函數(shù)3、np.min(x,axis)求最小值4、np.max(x,axis)求最大值5、np.var(x,axis)求方差6、np.std(x,axis)求標(biāo)準(zhǔn)差172025/2/199.1.3Matplotlib結(jié)構(gòu)182025/2/191.Pyplot和Pylab2.MatplotlibFronted3.Backends4.Matplotlib支持的圖表Matplotlib支持的圖表192025/2/199.2Matplotlib常見(jiàn)圖表202025/2/191、柱狀圖2、plt.rcParams設(shè)置中文環(huán)境9.2Matplotlib常見(jiàn)圖表212025/2/19堆積柱狀圖
設(shè)置Bar函數(shù)的bottom參數(shù)9.2Matplotlib常見(jiàn)圖表222025/2/19
分組柱狀圖
設(shè)置Bar函數(shù)的x軸位置,防止男性數(shù)據(jù)和女性數(shù)據(jù)的重疊9.2Matplotlib常見(jiàn)圖表232025/2/19極坐標(biāo)柱狀圖plt.subplot(projection=‘polar’)9.2Matplotlib常見(jiàn)圖表242025/2/19誤差柱狀圖
設(shè)置Bar函數(shù)的yerr參數(shù)9.2Matplotlib常見(jiàn)圖表252025/2/19
條形圖Barh()函數(shù)9.2Matplotlib常見(jiàn)圖表262025/2/19餅圖pie函數(shù)9.2Matplotlib常見(jiàn)圖表272025/2/19嵌套餅圖
兩次調(diào)用pie()函數(shù)9.2Matplotlib常見(jiàn)圖表282025/2/19折線圖plot()9.2Matplotlib常見(jiàn)圖表292025/2/19堆積折線圖stackplot()9.2.1Matplotlib常見(jiàn)圖表302025/2/19
散點(diǎn)圖9.2.2高級(jí)繪圖312025/2/19直方圖hist()函數(shù),bins參數(shù)表示直方圖間隔的數(shù)量9.2.2高級(jí)繪圖322025/2/19棉棒圖stem()9.2.2高級(jí)繪圖332025/2/19
箱形圖boxplot()9.2.2高級(jí)繪圖342025/2/19
誤差棒圖errorbar()9.2.2高級(jí)繪圖352025/2/19
階梯圖step()9.2.2高級(jí)繪圖362025/2/19
六邊形分箱圖hexbin()9.2.2高級(jí)繪圖372025/2/19
小提琴圖violinplot()9.2.3圖形的完善382025/2/19
legend函數(shù)
title函數(shù)9.2.3圖形的完善392025/2/19matplotlib.pyplot.plot(*args,scalex=True,scaley=True,data=None,**kwargs)*args表示列表參數(shù),**kwargs表示字典參數(shù)9.2.3圖形的完善402025/2/19text()函數(shù)在圖中增加文字說(shuō)明9.2.3圖形的完善412025/2/19annotate()在圖表中添加標(biāo)注9.2.3圖形的完善422025/2/19
table()在圖形中添加表格9.3Matplotlib的3D圖形和多子圖432025/2/193D圖形通常使用的坐標(biāo)系柱面坐標(biāo)系球面坐標(biāo)系9.3.1基礎(chǔ)3D圖形442025/2/19根據(jù)參數(shù)方程繪制三維螺旋線9.3.1基礎(chǔ)3D圖形452025/2/19空間散點(diǎn)圖主要繪制離散數(shù)據(jù),通過(guò)設(shè)置不同三點(diǎn)的形狀、顏色、尺寸可以增加展示數(shù)據(jù)的維度。9.3.1基礎(chǔ)3D圖形空間網(wǎng)格圖可以展示三維空間曲面圖形,plot_wireframe(X,Y,Z)函數(shù)的X參數(shù)是二維向量,Y也是二維向量,Z是曲面的高度。生成二維向量,通常需要使用meshgrid將一維向量轉(zhuǎn)變?yōu)槎S向量。
462025/2/19文字事件處理的根本在于事件捕獲。要實(shí)現(xiàn)事件的捕獲,為其建立一個(gè)綁定的事件處理函數(shù)是一個(gè)簡(jiǎn)單而方便的方法。用于綁定的方法如下:9.3.2高級(jí)3D圖形472025/2/19根據(jù)以下空間曲面方程,使用plot_surface(X,Y,Z)繪制空間曲面生成X、Y二維數(shù)組,通過(guò)np.sin(np.sqrt(x**2,y**2))繪制曲面9.3.2高級(jí)3D圖形48
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 昆明學(xué)院《現(xiàn)代辦公技能訓(xùn)練A》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年非接觸溫度計(jì)項(xiàng)目合作計(jì)劃書(shū)
- 蘇州城市學(xué)院《場(chǎng)景特效》2023-2024學(xué)年第二學(xué)期期末試卷
- 噴槍及類似器具項(xiàng)目效益評(píng)估報(bào)告
- 全國(guó)川教版信息技術(shù)八年級(jí)上冊(cè)第9課《編輯工作表》教學(xué)設(shè)計(jì)
- 桂林師范高等??茖W(xué)?!稊?shù)字繪畫(huà)技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 農(nóng)村打井簡(jiǎn)易合同范本
- 揚(yáng)州大學(xué)《展具設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海立達(dá)學(xué)院《食品營(yíng)養(yǎng)與衛(wèi)生管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 河南2024年河南信陽(yáng)師范大學(xué)招聘專職輔導(dǎo)員30人筆試歷年參考題庫(kù)附帶答案詳解
- 《彰化縣樂(lè)樂(lè)棒球》課件
- 深度解讀DeepSeek技術(shù)體系
- 2024-2025年第二學(xué)期團(tuán)委工作計(jì)劃(二)
- 駱駝養(yǎng)殖開(kāi)發(fā)項(xiàng)目可行性報(bào)告設(shè)計(jì)方案
- 物理-河南省鄭州市2024-2025學(xué)年高二上學(xué)期期末考試試題和答案
- 《幼兒教育政策與法規(guī)》教案-單元3 幼兒園的開(kāi)辦與管理
- 南通市2025屆高三第一次調(diào)研測(cè)試(一模)生物試卷(含答案 )
- 新時(shí)代中國(guó)特色社會(huì)主義理論與實(shí)踐2024版研究生教材課件全集6章
- 《由宋城集團(tuán)的成功》課件
- (2024)湖北省公務(wù)員考試《行測(cè)》真題及答案解析
- 信息經(jīng)濟(jì)學(xué) 課件(1至6章)
評(píng)論
0/150
提交評(píng)論