python數據繪圖常用方法總結


挖坑,以后還會更新吧

做數學建模畫圖使用了matplotlib和numpy,這里簡單總結一下常用的用法

 

一、數據擬合

1、np.polyfit(x, y, n) 使用n次多項式去擬合x,y散點圖,返回各個項的系數

2、np.poly1d(a) 返回一個a數組描述的多項式函數

3、np.linspace(l, r, n) 從l到r上生成n個數(間距相等) 

 

二、二維顏色圖的繪畫

1、首先需要from matplotlib import colors, ticker, cm

x = np.linspace(l1, r1, n1)

y = np.linspace(l2, r2, n2)

X, Y = np.meshgrid(x, y)

這里

X,Y生成一個像網格的矩陣,X[i][1~n2]都等於x[i], Y[1~n1][i]都等於y[i](用於繪制三維圖)

 

2、然后設置圖的格式

fig, ax = plt.subplots()  這里fig是衡量z值的條,ax是三維子圖

cs = ax.contourf(X, Y, Z, locator = ticker.LinearLocator(), cmap = cm.PuBu_r)

 

ticker是指刻度的分割標准,有線性,也有log標准,具體可以參見

https://matplotlib.org/api/ticker_api.html

cmap是配色風格,有很多風格可選

 

3、添加colorbar和顯示

cbar = fig.colorbar(cs)

plt.show() 

即可形成一個二維顏色分布圖

 

 

三、三維圖的繪制

1、首先需要from mpl_toolkits.mplot3d.axes3d import Axes3D

並設置一下子圖格式

fig = plt.figure(figsize = plt.figaspect(0.5)) (長寬比例)

ax = fig.addsubplot(1, 1, 1, projection='3d') (x, y, z軸顯示時的比例,這里為1:1:1)

X,Y同樣需要網格化。

 

2、接下來生成三維平面

surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False)

fig.colorbar(surf, shrink=0.5, aspect=10)

rstride為行的步幅,linewidth為線寬,antialiased是抗鋸齒開關

然后添加colorbar,分成10份,刻度為每半份一個

 

3、最后plt.show()即可

 

4、另一種三維圖的樣式是plot_wireframe,這個是沒有顏色的

 

四、關於坐標軸

set_xlabel()設置x軸的標識

set_xticks()設置x軸的刻度([]代表無刻度)

 

 

先簡單做到這里,以后遇到更多的應用會更新吧

不得不說matplotlib還是很強大的,有很多的數據圖還沒有用到

 


免責聲明!

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



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