python 用 matplotlib 在 3D 空間中連點成線,繪制立體圖形


圖形預覽:

  

 

 

 

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()

圖形:

 

 軟件信息:

 

 

 

 

 

 


免責聲明!

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



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