我在 3D 陣列中制作了以下虛擬“房間”,并希望將其可視化。我找不到方法,請幫忙。我們的想法是將陣列的“3D 影像”視為不同值具有不同顏色或只是灰度強度的圖,以便您可以看到“房間”內的“患者”和“檢測器”:
import numpy as np
# Diff. values in the Room define objects: 0 = walls, 1 = inside room, 2 = patient's tissue, 3 = bone, 4 = x-ray detector
Room = np.array([[[0.0 for i in range(0,101,1)] for j in range(0,101,1)] for k in range(0,101,1)]) #The entire room with walls
for i in range(1,100,1):
for j in range(1,100,1):
for k in range(1,100,1):
Room[i,j,k] =1 # The room not counting the walls
for i in range(30,70,1):
for j in range(30,70,1):
for k in range(30,70,1):
Room[i,j,k] =1 #The patient's body (tissue)
for i in range(50,55,1):
for j in range(50,55,1):
for k in range(50,55,1):
Room[i,j,k] =1 #The patient's bone #1
for i in range(58,63,1):
for j in range(58,63,1):
for k in range(58,63,1):
Room[i,j,k] =1 #The patient's bone #2
for i in range(88,92,1):
for j in range(10,90,1):
for k in range(10,90,1):
Room[i,j,k] =1 # X-ray Detector
uj5u.com熱心網友回復:
您可以在 matplotlib 和 numpy 的幫助下創建 3 維網格。這是一個這樣的情節的例子。您只想將 X、Y 和 Z 值作為串列輸入
將 numpy 匯入為 np 將 matplotlib.pyplot 匯入為 plt
# Create figure and add axis
fig = plt.figure(figsize=(8,6))
ax = plt.subplot(111, projection='3d')
# Remove gray panes and axis grid
ax.xaxis.pane.fill = False
ax.xaxis.pane.set_edgecolor('white')
ax.yaxis.pane.fill = False
ax.yaxis.pane.set_edgecolor('white')
ax.zaxis.pane.fill = False
ax.zaxis.pane.set_edgecolor('white')
ax.grid(False)
# Remove z-axis
ax.w_zaxis.line.set_lw(0.)
ax.set_zticks([])
# Create meshgrid
X, Y = np.meshgrid(np.linspace(0, 2, len(afm_data)), np.linspace(0, 2, len(afm_data)))
# Plot surface
plot = ax.plot_surface(X=X, Y=Y, Z=Z, cmap='YlGnBu_r', vmin=0, vmax=200)
有一篇關于該主題的資料科學文章:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/448664.html
