圖形預覽:
0、import
import matplotlib as mpl from matplotlib import cm from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Axes3D
1、簡單的連點成線
# 創建畫布
fig = plt.figure(figsize=(12, 8), facecolor='lightyellow' ) # 創建 3D 坐標系
ax = fig.gca(fc='whitesmoke', projection='3d' ) # 繪制 3D 圖形
ax.plot3D(xs=[2, 0, 2, 2, 2, 0, 2], # x 軸坐標
ys=[0, 2, 2, 0, 2, 2, 2], # y 軸坐標
zs=[2, 2, 2, 2, 0, 2, 2], # z 軸坐標
zdir='z', #
c='k', # color
marker='o', # 標記點符號
mfc='r', # marker facecolor
mec='g', # marker edgecolor
ms=10, # size
) ax.plot(xs=[2, 0, 0, 0, 1, 2, 0, 1, 2], ys=[0, 0, 2, 0, 1, 2, 0, 1, 2], zs=[2, 0, 2, 0, 1, 2, 0, 0, 0], ls=':', color='grey', marker='o', mfc='r', mec='g' ) # 設置坐標軸標題和刻度
ax.set(xlabel='X', ylabel='Y', zlabel='Z', xticks=np.arange(0, 4, 0.5), yticks=np.arange(0, 4, 0.5), zticks=np.arange(0, 4, 0.5) ) # 調整視角
ax.view_init(elev=20, # 仰角
azim=40 # 方位角
) # 顯示圖形
plt.show()
圖形:
2、立方體
# 創建畫布
fig = plt.figure(figsize=(12, 8), facecolor='lightyellow' ) # 創建 3D 坐標系
ax = fig.gca(fc='whitesmoke', projection='3d' ) x = [7, 7, 7, 7, 3, 3, 3, 3] y = [3, 7, 7, 3, 3, 7, 7, 3] z = [7, 7, 3, 3, 7, 7, 3, 3] A, B, C, D, E, F, G, H = zip(x, y, z) # 繪制 3D 圖形
lines_1 = zip(A, B, C, D, A, E, F, G, C, B, F) ax.plot3D(*lines_1, zdir='z', #
c='k', # color
marker='o', # 標記點符號
mfc='r', # marker facecolor
mec='g', # marker edgecolor
ms=10, # size
) lines_2 = zip(D, H, E, G, H) ax.plot(*lines_2, ls=':', color='b', marker='o', mfc='r', mec='g' ) # 設置坐標軸標題和刻度
ax.set(xlabel='X', ylabel='Y', zlabel='Z', xlim=(0, 9), ylim=(0, 9), zlim=(0, 9), xticks=np.arange(0, 10, 2), yticks=np.arange(0, 10, 1), zticks=np.arange(0, 10, 1) ) # 添加頂點字母標注
for pos in list('abcdefgh'.upper()): ax.text(*eval(pos), s=pos, fontsize=18, color='darkgreen') # 調整網格線
ax.grid() # 調整視角
ax.view_init(elev=15, # 仰角
azim=40 # 方位角
) # 顯示圖形
plt.show()
圖形:
軟件信息: