2017-03-16 181 views
2

我想在3D繪圖中表示二維3D矩陣(如果可能,不能與mayavi.mlab一起使用)。在矩陣有1點的每個位置(x,y,z)應該被繪製。 我矩陣是建立在以下方式:在Python中繪製二進制3D矩陣

import numpy as np 
size = 21 
my_matrix = np.zeros(shape = (size, size, size)) 
random_location_1 = (1,1,2) 
random_location_2 = (3,5,8) 
my_matrix[random_location_1] = 1 
my_matrix[random_location_2] = 1 

現在在座標(1,1,2)和(3,5,8)點應該是可見的,其他地方只是空的空間。 有什麼辦法可以做到這一點(例如用matplotlib?)

回答

2

聽起來像你需要散點圖。看看this mplot3d教程。對我來說這工作:

from mpl_toolkits.mplot3d import Axes3D 
import matplotlib.pyplot as plt 
import numpy as np 


fig = plt.figure() 
ax = fig.add_subplot(111, projection='3d') 

size = 21 
m = np.zeros(shape = (size, size, size)) 
random_location_1 = (1,1,2) 
random_location_2 = (3,5,8) 
m[random_location_1] = 1 
m[random_location_2] = 1 

pos = np.where(m==1) 
ax.scatter(pos[0], pos[1], pos[2], c='black') 
plt.show() 
+0

謝謝!這正是我一直在尋找的! –