matplotlib的基本使用、繪制雷達圖及繪制數學函數


一、matplotlib的介紹

1、matplotlib是提供數據繪圖功能的第三方庫,其pyplot子庫主要用於實現各種數據展示圖形的繪制。

2、pyplot子庫的引用方式如下:

import matplotlib.pyplot as plt

3、為了正確顯示中文字體,請用一下代碼更改默認設置,其中“SimHei”表示黑體字

>>>import matplotlib

>>>matplotlib.rcParams['font.family']='SimHei'

>>>matplotlib.rcParams['font.sans-serif']=['SimHei']

二、matplotlib.pyplot庫解析

1、plt子庫提供了一批操作和繪圖函數,每個函數代表對圖像進行的一個操作,比如創建繪圖區域、添加標注或者修改坐標軸等。

2、這些函數采用plt.<b>()形式調用,其中<b>是具體函數名稱

3、plt庫的繪圖區域函數

函數 說明
plt.figure(figsize=None,facecolor=None) 創建一個全局繪圖區域,figsize參數可以指定繪圖區域的寬度和高度
plt.axes(rect,axisbg='w') 創建一個坐標系風格的子繪圖區域,參數表示將全局繪圖區域分成nrows行和ncols列,並根據先行后列的計數方式在plot_number位置上生成一個坐標系
plt.subplot(nrows,ncols,plot_number) 在全局繪圖區域中創建一個子繪圖區域
plt.subplots_adjust() 調整子圖區域的布局

 

 

 

 

 

 

 

 

 

注意:axes()默認創建一個subplot(111)坐標系,參數rec=[left,bottom,width,height]中四個變量的范圍都為[0,1],表示坐標系與全局繪圖區域的關系;axisbg指背景色,默認為white

 

4、plt庫的讀取和顯示函數

 

函數 說明
plt.legend() 在繪圖區域中方式繪圖標簽(也稱圖注)
plt.show() 顯示創建的繪圖對象
plt.matshow() 在窗口顯示數組矩陣
plt.imshow() 在axes上顯示圖像
plt.imsave() 保存數組為圖像文件
plt.imread() 從圖像文件中讀取數組

 

 

 

 

 

 

 

 

 

 

5、plt庫的基礎表函數

 

操作 說明
plt.plot(x,y,lable,color,width) 根據x,y數組繪制直/曲線,x和y可以是numpy計算出的數組,label表示設置標簽並在圖例中顯示,color表示曲線的顏色,width表示曲線的寬度
plt.boxplot(data,notch,position) 繪制一個箱型圖(Box-plot)
plt.bar(left,height,width,bottom) 繪制一個條形圖
plt.barh(bottom,width,height,left) 繪制一個橫向條形圖

 

 

 

 

 

 

plt.polar(theta,r) 繪制極坐標圖
plt.pie(data,explode) 繪制餅圖
plt.psd(x,NFFT=256,pad_to,Fs) 繪制功率譜密度圖
plt.specgram(x,NFFT=256,pad_to,F) 繪制譜圖
plt.cohere(x,y,NEET=256,Fs) 繪制X-Y的相關性函數
plt.scatter() 繪制散點圖(x,y是長度相同的序列)
plt.step(x,y,where) 繪制步階圖
plt.hist(x,bins,normed) 繪制直方圖
plt.contour(X,Y,Z,N)

繪制等值線

plt.vlines() 繪制垂直線
plt.stem(x,y,linefmt,markerfmt,basefmt) 繪制曲線每個點到水平軸線的垂線
plt.plot_data() 繪制數據日期
plt.plotfile() 繪制數據后寫入文件

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

例如:繪制一個簡單圖形

a、當plt.plot()中輸入參數只有一個列表或數組時,此參數會被當做y軸處理,x軸是此列表的索引(自動生成)

 

 

 

 

b、當plt.plot()有兩個以上參數時,分別對應x軸和y軸繪制圖像,可使用axis()函數設置橫縱坐標尺度的函數(設置X,Y坐標的起點和終點)

 

 

 

 

 

三、繪制雷達圖

代碼

 1 import numpy as np
 2 import matplotlib 
 3 import matplotlib.pyplot as plt
 4 matplotlib.rcParams['font.family']='SimHei'
 5 matplotlib.rcParams['font.sans-serif']=['SimHei']
 6 labels=np.array(['第一周','第二周','第三周','第四周','第五周','第六周'])
 7 nAttr=6
 8 Python=np.array([60.4,57.9,100,100,92.4,87.5])
 9 angles=np.linspace(0,2*np.pi,nAttr,endpoint=False)
10 Python=np.concatenate((Python,[Python[0]]))
11 angles=np.concatenate((angles,[angles[0]]))
12 fig=plt.figure(facecolor="white")
13 plt.subplot(111,polar=True)
14 plt.plot(angles,Python,'bo-',color='g',linewidth=2)
15 plt.fill(angles,Python,facecolor='g',alpha=0.2)
16 plt.thetagrids(angles*180/np.pi,labels)
17 plt.figtext(0.52,0.95,'Rachel的python成績分析圖',ha='left')
18 plt.figtext(0.52,0.95,'2019310143011',ha='right')
19 plt.grid(True)
20 plt.savefig('acculate.JPG')
21 plt.show()

結果

 

四、繪制數學函數

r=3*(1+cos(a))

代碼如下

1 import numpy as np 
2 import matplotlib.pyplot as plt
3 plt.axis([-1,9,-4,4])
4 a=np.linspace(0,2*np.pi,1000)
5 r=3*(1+np.cos(a))
6 x=r*np.cos(a)
7 y=r*np.sin(a)
8 plt.plot(x,y,'x',linewidth=2)

結果如下

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM