在Python中我們可以導(dǎo)入mplot3d
工具包來繪制三維圖。
在
Matplotlib 1.0.0
之前,每個圖形只能創(chuàng)建一個Axes3D
,需要被直接定義為ax = Axes3D
在
Matplotlib 3.2.0
之前,必須導(dǎo)入mpl_toolkits.mplot3d
模塊將關(guān)鍵字Projection='3d'
傳遞給Figure.add_subplot
3維坐標(biāo)系通過將關(guān)鍵字Projection='3d'
傳遞給Figure.add_subplot
創(chuàng)建,無需導(dǎo)入mpl_toolkit.mplot3d
就可以實(shí)現(xiàn)三維圖的繪制。
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(projection='3d')
也可以在同一個畫布中
fig
中創(chuàng)建多個3D子圖,就像2D子圖一樣。
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(figsize = (10,8))
ax1 = fig.add_subplot(121, projection='3d')
ax2 = fig.add_subplot(122,projection = '3d')
plt.show()
曲線圖
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(figsize=[8,6])
ax = fig.add_subplot(projection='3d')
# Prepare arrays x, y, z
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
z = np.linspace(-2, 2, 100)
r = z**2 + 1
x = r * np.sin(theta)
y = r * np.cos(theta)
ax.plot(x, y, z, label = "parametric curve")
ax.legend()
plt.show()
曲面圖
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(figsize=[8,6])
ax = fig.add_subplot(projection='3d')
X = np.arange(-4, 4, 0.25)
Y = np.arange(-4, 4, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.cm.hot)
# ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=plt.cm.hot)
ax.set_zlim(-2,2)
plt.show()
文章來源:http://www.zghlxwxcb.cn/news/detail-517520.html
兩條曲線
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['axes.unicode_minus']=False
plt.rcParams['font.sans-serif'] = ['SimHei']
fig = plt.figure(figsize=(8,6))
ax1 = fig.add_subplot(projection='3d')
# Prepare arrays x, y, z
t = np.linspace(0, 3, 10000)
x = 5*t + 3 * np.cos((np.pi*50*t)/30)
y = 3 * np.sin((np.pi*50*t)/30)
z = 0.005 * np.sin(2*np.pi*40*t)
x1 = 5*t + 3 * np.cos((np.pi*50*t)/30)
y1 = 3 * np.sin((np.pi*50*t)/30)
z1 = 0
ax1.plot(x, y, z,linewidth = 1)
ax1.plot(x1,y1,z1,c='r')
ax1.legend(["UAG","CG"])
ax1.set_zlim(-0.02,0.02)
ax1.set_xlim(-1,15)
x1 = 5*t + 3 * np.cos((np.pi*50*t)/30)
y1 = 3 * np.sin((np.pi*50*t)/30)
plt.show()
文章來源地址http://www.zghlxwxcb.cn/news/detail-517520.html
到了這里,關(guān)于Python mpl_toolkits.mplot3d工具包繪制三維圖的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!