2017-03-16 1 views
2

가능한 경우 mayavi.mlab로는 3D 플롯에서 이진 3D 행렬을 나타내려고합니다. 행렬에 1이있는 모든 위치 (x, y, z)에서 점을 그려야합니다. 내 행렬은 다음과 같은 방법으로 내장되어 있습니다 : 다른 곳에서 단지 빈 공간 좌표 (1,1,2)과 (3,5,8) 점을 볼 수 있어야합니다 지금파이썬에서 이진 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 

합니다. 이렇게 할 수있는 방법이 있습니까 (예 : 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

감사합니다! 그게 내가 찾고 있던거야! –