




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Matplotlib繪圖庫簡介什么是matplotlib庫Matplotlib是Python語言在二維繪圖方面使用最廣泛的一個庫其設計借鑒了MATLAB的繪圖功能,可以繪制線圖、散點圖、等高線圖、直方圖、柱狀圖、3D圖形、甚至圖形動畫等等。它可以和科學計算庫NumPy很好地結合,將用戶的計算數據圖形化。它提供了多種圖形存儲格式,比如存儲為矢量圖、位圖、動畫等。西安交通大學計算機教學實驗中心2安裝matplotlib首先使用win+R輸入cmd命令打開命令窗口,再使用以下命令進行安裝:
pipinstallmatplotlib這里pip是安裝python時,安裝的一個工具。3Matplotlib圖形構成4Figure:指整個圖形。可理解成繪圖板;Axes:繪圖區,它被包含在Figure中。一個Figure可包含多個Axes;Axis:指坐標軸及相關刻度、標簽等;Artist:除去坐標軸之外,所有繪制在圖紙上的元素都屬于Artist對象,例如標題、直線、曲線、直方圖、餅圖等。1.繪制散點圖scatter(x,y,s,c,marker,alpha,linewidths)參數說明:x,y:長度相同的兩個數組,表示點坐標s:點的大小,默認20,可以是數組(每個值為點的大小)c:點的顏色,可以是顏色數組(每個值為對應點顏色)marker:點的樣式,默認小圓點(即樣式'o')alpha:透明度設置,取值在0(透明)到1(不透明)之間linewidths:標記點的邊緣線的寬度,默認為1.5。西安交通大學計算機教學實驗中心51.繪制散點圖importmatplotlib.pyplotasplt
#導入繪圖模塊importnumpyasnp
#導入Numpy模塊x=np.array([1,2,3,4,5,6])#點的x坐標y=np.array([1.1,4.5,1.9,3.3,6.0,5.1])#點的y坐標plt.scatter(x,y)#繪圖函數plt.show()#顯示圖形西安交通大學計算機教學實驗中心61.繪制散點圖importmatplotlib.pyplotaspltimportnumpyasnpx=np.array([1.5,2.2,2.4,3,3.1,4,1.8,2.6,3.5]) #點的x坐標y=np.array([1.6,2.2,2.5,3.3,3.5,4.5,1.9,3.1,4.0]) #點的y坐標sizes=np.array([160,990,700,1000,400,60,80,100,200])alp=0.5
#設置透明度,取值在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()西安交通大學計算機教學實驗中心72.繪制直線和曲線西安交通大學計算機教學實驗中心8plot(x,y,color,linestyle,linewidth,marker,markersize)參數說明:x,y:兩個數組,表示一系列點的x、y坐標。將依次連接這些點color:線的顏色,取值見前文繪制散點圖部分linestyle,linewidth:線型、線寬(以像素為單位)
marker,markersize:點的標記形式及大小線型字符說明-實線--虛線-.點劃線:點線空不繪制點標記符號描述o實心圓v下三角^上三角<
左三角>
右三角s正方形*星號+加號x乘號2.繪制直線和曲線西安交通大學計算機教學實驗中心9繪制cos函數曲線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)
關于bar()函數的參數:x:數組,指定所有柱圖的水平坐標。height:數組,指定柱圖的高度,也就是需要展示的數據的大小。width:實數,指定柱圖的寬度,默認0.8。bottom:數組,指定每個柱圖的起始高度。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為底部坐標,達到堆疊效果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)參數說明:x:數組,存儲要計算直方圖的數據。bins:直方圖的柱數,默認為10。range:所考察的數值范圍。默認值為所有數據的最小值到最大值。density:默認為False,表示頻數直方圖;若為True,則表示頻率直方圖。color:直方圖顏色。edgecolor:直方圖每個柱形邊框顏色。alpha:透明度,取值0到1,0—透明,1—不透明4.繪制直方圖importnumpyasnpimportmatplotlib.pyplotaspltdata=np.random.standard_normal(1000)#按正態分布取值,生成100個數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分別是字體名、是否為粗體或斜體、顏色、大小。函數xlabel()和ylabel()用來設置x軸和y軸的標簽,函數title()用來設置標題。例如:font1={"family":"Simsun","fontsize":13,"color":"b"} #定義字體font1plt.xlabel("這是x軸標簽",font1)
#在xlabel()中使用font1plt.title("這是標題",font1) #在title()中使用font1坐標軸和刻度設置importmatplotlib.pyplotaspltimportnumpyasnpplt.ylim(-4,4)ax=plt.gca() #獲得坐標軸對象ax.spines['left'].set_position('center') #設置y軸居中ax.spines['bottom'].set_position(('data',0)) #設置x軸位于數據y軸0處ax.spines['right'].set_visible(False) #設置右側邊框不可見ax.spines['top'].set_visible(False) #設置上邊框不可見plt.tick_params(colors='b',labelsize=12)#設置坐標軸上字體顏色、尺寸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) #顯示函數方程plt.show()實現一頁多圖使用pyplot的subplot()函數可以在一幅圖(Figure)中繪制多個子圖,其函數原型為:subplot(nrows,ncols,plot_num)參數說明:nrows,ncols:分別為所包含子圖的總行數、總列數。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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年六一國際兒童節主題活動方案范本
- 2025年企業工作方案
- 醫美行業的銷售技巧培訓
- 20XX年醫院戰略規劃
- 快遞培訓之職業銷售實戰訓練營
- 2025年新疆省昌吉回族自治州小升初模擬數學測試卷含解析
- 哈爾濱科學技術職業學院《中級語法》2023-2024學年第二學期期末試卷
- 南京曉莊學院《英語視聽說(四)》2023-2024學年第一學期期末試卷
- 岳陽現代服務職業學院《影視制作基礎與實踐》2023-2024學年第二學期期末試卷
- 纖支鏡檢查的護理配合
- 合同管理知識培訓課件
- 2025年-浙江建筑安全員A證考試題庫附答案
- 2025屆山西省高三一模地理試題(原卷版+解析版)
- 八下歷史第三單元大單元教學設計
- 2024年電信銷售員工年終總結
- 2025年度執業藥師職務聘用協議模板
- Unit3 Weather Part A(說課稿)-2023-2024學年人教PEP版英語四年級下冊
- 《明清家居家具設計》課件
- 2-山東工業技師學院申報國家級高技能人才培訓基地項目申報書
- GA/T 2144-2024法庭科學涉火案件常見助燃劑及其殘留物檢驗技術導則
- 常用消毒劑的分類、配制及使用課件演示幻燈片
評論
0/150
提交評論