軟件開發(fā)技術(shù)基礎(chǔ) 第4版 課件 6-1 繪圖編程技術(shù)_第1頁
軟件開發(fā)技術(shù)基礎(chǔ) 第4版 課件 6-1 繪圖編程技術(shù)_第2頁
軟件開發(fā)技術(shù)基礎(chǔ) 第4版 課件 6-1 繪圖編程技術(shù)_第3頁
軟件開發(fā)技術(shù)基礎(chǔ) 第4版 課件 6-1 繪圖編程技術(shù)_第4頁
軟件開發(fā)技術(shù)基礎(chǔ) 第4版 課件 6-1 繪圖編程技術(shù)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Matplotlib繪圖庫簡介什么是matplotlib庫Matplotlib是Python語言在二維繪圖方面使用最廣泛的一個庫其設(shè)計借鑒了MATLAB的繪圖功能,可以繪制線圖、散點圖、等高線圖、直方圖、柱狀圖、3D圖形、甚至圖形動畫等等。它可以和科學(xué)計算庫NumPy很好地結(jié)合,將用戶的計算數(shù)據(jù)圖形化。它提供了多種圖形存儲格式,比如存儲為矢量圖、位圖、動畫等。西安交通大學(xué)計算機教學(xué)實驗中心2安裝matplotlib首先使用win+R輸入cmd命令打開命令窗口,再使用以下命令進行安裝:

pipinstallmatplotlib這里pip是安裝python時,安裝的一個工具。3Matplotlib圖形構(gòu)成4Figure:指整個圖形??衫斫獬衫L圖板;Axes:繪圖區(qū),它被包含在Figure中。一個Figure可包含多個Axes;Axis:指坐標(biāo)軸及相關(guān)刻度、標(biāo)簽等;Artist:除去坐標(biāo)軸之外,所有繪制在圖紙上的元素都屬于Artist對象,例如標(biāo)題、直線、曲線、直方圖、餅圖等。1.繪制散點圖scatter(x,y,s,c,marker,alpha,linewidths)參數(shù)說明:x,y:長度相同的兩個數(shù)組,表示點坐標(biāo)s:點的大小,默認(rèn)20,可以是數(shù)組(每個值為點的大?。ヽ:點的顏色,可以是顏色數(shù)組(每個值為對應(yīng)點顏色)marker:點的樣式,默認(rèn)小圓點(即樣式'o')alpha:透明度設(shè)置,取值在0(透明)到1(不透明)之間linewidths:標(biāo)記點的邊緣線的寬度,默認(rèn)為1.5。西安交通大學(xué)計算機教學(xué)實驗中心51.繪制散點圖importmatplotlib.pyplotasplt

#導(dǎo)入繪圖模塊importnumpyasnp

#導(dǎo)入Numpy模塊x=np.array([1,2,3,4,5,6])#點的x坐標(biāo)y=np.array([1.1,4.5,1.9,3.3,6.0,5.1])#點的y坐標(biāo)plt.scatter(x,y)#繪圖函數(shù)plt.show()#顯示圖形西安交通大學(xué)計算機教學(xué)實驗中心61.繪制散點圖importmatplotlib.pyplotaspltimportnumpyasnpx=np.array([1.5,2.2,2.4,3,3.1,4,1.8,2.6,3.5]) #點的x坐標(biāo)y=np.array([1.6,2.2,2.5,3.3,3.5,4.5,1.9,3.1,4.0]) #點的y坐標(biāo)sizes=np.array([160,990,700,1000,400,60,80,100,200])alp=0.5

#設(shè)置透明度,取值在0(透明)到1(不透明)之間colors=np.array(['red','green','black','orange','brown','y','c','b','#18c900'])plt.scatter(x,y,s=sizes,c=colors,alpha=alp) plt.show()西安交通大學(xué)計算機教學(xué)實驗中心72.繪制直線和曲線西安交通大學(xué)計算機教學(xué)實驗中心8plot(x,y,color,linestyle,linewidth,marker,markersize)參數(shù)說明:x,y:兩個數(shù)組,表示一系列點的x、y坐標(biāo)。將依次連接這些點color:線的顏色,取值見前文繪制散點圖部分linestyle,linewidth:線型、線寬(以像素為單位)

marker,markersize:點的標(biāo)記形式及大小線型字符說明-實線--虛線-.點劃線:點線空不繪制點標(biāo)記符號描述o實心圓v下三角^上三角<

左三角>

右三角s正方形*星號+加號x乘號2.繪制直線和曲線西安交通大學(xué)計算機教學(xué)實驗中心9繪制cos函數(shù)曲線importmatplotlib.pyplotaspltimportnumpyasnpx=np.linspace(0,np.pi,10)#在[0,π]上均勻生成10個點y_cos=np.cos(x) #計算10個點的cos值y_cos_h=y_cos/2 #將10個點的每個cos值除以2plt.plot(x,y_cos,color='red',marker='+',linestyle='--')plt.plot(x,y_cos_h,color='b',marker='^',linestyle=':')plt.show()2.繪制直線和曲線importmatplotlib.pyplotaspltimportnumpyasnpx=np.linspace(0,np.pi,10) #在[0,π]上均勻生成10個點y_sin=np.sin(x) #計算10個點的sin值y_sin_half=y_sin/2 #將10個點的每個sin值除以2plt.plot(x,y_sin,'bs-',linewidth=2,markersize=6)plt.plot(x,y_sin_half,'ro',linewidth=2,markersize=6)plt.show()3.繪制柱狀圖bar(x,height,width,bottom,color,align,edgecolor)barh(y,width,height,left,color,align,edgecolor)

關(guān)于bar()函數(shù)的參數(shù):x:數(shù)組,指定所有柱圖的水平坐標(biāo)。height:數(shù)組,指定柱圖的高度,也就是需要展示的數(shù)據(jù)的大小。width:實數(shù),指定柱圖的寬度,默認(rèn)0.8。bottom:數(shù)組,指定每個柱圖的起始高度。align:柱圖水平對齊方式,可選center(中心對齊)或edge(邊緣對齊)。edgecolor:柱圖邊框的顏色。3.繪制柱狀圖importnumpyasnpimportmatplotlib.pyplotaspltx=np.arange(4)y1=np.array([2.5,3.3,4.6,1.5])y2=np.array([1.5,2.3,3.0,1.5])plt.bar(x,y1,0.5,color='y',align='center',edgecolor='k',linewidth=1)#下面繪制的第2組柱狀圖以y1為底部坐標(biāo),達(dá)到堆疊效果plt.bar(x,y1,0.5,color='m',align='center',edgecolor='k',linewidth=1,bottom=y1)plt.show()4.繪制直方圖 hist(x,bins,range,density,color,edgecolor,alpha)參數(shù)說明:x:數(shù)組,存儲要計算直方圖的數(shù)據(jù)。bins:直方圖的柱數(shù),默認(rèn)為10。range:所考察的數(shù)值范圍。默認(rèn)值為所有數(shù)據(jù)的最小值到最大值。density:默認(rèn)為False,表示頻數(shù)直方圖;若為True,則表示頻率直方圖。color:直方圖顏色。edgecolor:直方圖每個柱形邊框顏色。alpha:透明度,取值0到1,0—透明,1—不透明4.繪制直方圖importnumpyasnpimportmatplotlib.pyplotaspltdata=np.random.standard_normal(1000)#按正態(tài)分布取值,生成100個數(shù)n_bins=16plt.hist(data,n_bins,color='c',edgecolor='k')plt.show()5.繪制餅圖importmatplotlib.pyplotaspltnum=[20,30,40,50]grade=['A','B','C','D']clr=['lightgreen','cyan','red','yellow']exp=(0.1,0,0,0)plt.pie(num,explode=exp,labels=grade,colors=clr,autopct='%.1f%%')plt.show()字體font1={'family':'calibri','style':'italic','color':'r','size':15}這里屬性family、style、color、size分別是字體名、是否為粗體或斜體、顏色、大小。函數(shù)xlabel()和ylabel()用來設(shè)置x軸和y軸的標(biāo)簽,函數(shù)title()用來設(shè)置標(biāo)題。例如:font1={"family":"Simsun","fontsize":13,"color":"b"} #定義字體font1plt.xlabel("這是x軸標(biāo)簽",font1)

#在xlabel()中使用font1plt.title("這是標(biāo)題",font1) #在title()中使用font1坐標(biāo)軸和刻度設(shè)置importmatplotlib.pyplotaspltimportnumpyasnpplt.ylim(-4,4)ax=plt.gca() #獲得坐標(biāo)軸對象ax.spines['left'].set_position('center') #設(shè)置y軸居中ax.spines['bottom'].set_position(('data',0)) #設(shè)置x軸位于數(shù)據(jù)y軸0處ax.spines['right'].set_visible(False) #設(shè)置右側(cè)邊框不可見ax.spines['top'].set_visible(False) #設(shè)置上邊框不可見plt.tick_params(colors='b',labelsize=12)#設(shè)置坐標(biāo)軸上字體顏色、尺寸x=np.linspace(-3,3,60)y=x**3-3*xplt.plot(x,y,'g-')plt.text(-3,3,'$f(x)=x^3-3x$',fontsize=14) #顯示函數(shù)方程plt.show()實現(xiàn)一頁多圖使用pyplot的subplot()函數(shù)可以在一幅圖(Figure)中繪制多個子圖,其函數(shù)原型為:subplot(nrows,ncols,plot_num)參數(shù)說明:nrows,ncols:分別為所包含子圖的總行數(shù)、總列數(shù)。plot_num:將要繪制的子圖號。所有子圖自左向右、自上而下從1開始編號。importmatplotlib.pyplotaspltimportnumpyasnpplt.figure(figsize=(7.3,5.5),dpi=100) plt.subplots_adjust(wspace=0.3,hspace=0.4) #開始繪制1號子圖

x1=np.array([0,5,10])y1=np.array([0,4,6])z1=np.array([2,6,8])plt.subplot(2,2,1) plt.plot(x1,y1,'rs-',label='A1')plt.plot(x1,z1,'go-.',label='A2')plt.legend()plt.title("plot1")#開始繪制2號子圖x2=np.array([1,2,3,4])y2=np.array([1,2,2.5,2.6])z2=np.array([2,0.8,0.2,0])plt.subplot(2,2,2) plt.plot(x2,y2)plt.plot(x2,z2)plt.legend(['B1','B2'])plt.title("plot2")#開始繪制3號子圖x3=np.array([1,2,3,4,5,6])y3=np.array([6,10,7,6,3.8,7])z3=np.array([8,10,6,5,2

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論