matplotlib的二維作圖及三維作圖 ax.plot_wireframe, scatter


matplotlib表示連續函數圖形用plot()函數,表示離散函數圖形用scatter()函數。

這2個函數適用二維作圖,也適用三維作圖。

繪制二維圖及三維圖重點思維:

無論你繪制二維或是三維,你均可利用函數y=f(x)或z=f(x,y),即

你需要找到自變量與應變量,二維圖就需找x,y;三維圖就需找x,y,z

然而作圖並不能給連續自變量與因變量,以二維圖來說,你需要給自變量x

一個離散列表,同時給因變量y一個對應列表,盡管是離散,但借助函數plot可以

將其光滑,給出連續圖形,借助scatter可以給出對應離散點。

 

 

 

 

二維作圖代碼:

import math
import matplotlib.pyplot as plt
x=[float(i) for i in range(1,300)]
y=[math.log(i) for i in x]
plt.grid() # 打開網格
plt.plot(x,y,c='r', linewidth=3, label='log Curve') # 繪制坐標為(x,y)的直線,label='log Curve'為直線的名稱
a=[x[20],x[175]]
b=[y[20],y[175]]
plt.plot(a, b, c='g', marker='*',markersize=15,alpha=0.75,label='line-wire') # 繪制坐標為(a,b)的直線
plt.legend(loc='upper left') # 顯示圖標在左上角
plt.xlabel('x') # 設置x坐標名稱
plt.ylabel('log(x)') # 設置y坐標名稱
plt.show()




結果如圖:

 

 

 

# 三維作圖

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
x = np.random.randint(0,20,(20),np.int32)
y = np.random.randint(0,20,(20),np.int32)
z = np.random.randint(0,20,(20,20),np.int32)
fig = plt.figure()
ax = Axes3D(fig)
ax.plot_wireframe(x,y,z,cstride=1,rstride=1,color='red') # 線框圖
plt.show()


# 繪制一個散點圖
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
xs = np.random.randint(2, 50, (100), np.int32)
ys = np.random.randint(20,70 , (100), np.int32)
zs = np.random.randint(21, 100, (100),np.int32)
ax.scatter(xs, ys, zs, c='r', marker='o')# xs, ys, zs可以為浮點數

ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
plt.show()


 


免責聲明!

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



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