2017-03-16 19 views
2

3Dプロットでバイナリ3D行列を表現したい(できればmayavi.mlabではない)。行列が1であるすべての位置(x、y、z)において、点がプロットされるべきである。 私の行列は次のように構築されています。他のどこでもちょうど空スペース、座標(1,1,2)と(3,5,8)のドットが見えるはずで今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 

を。 これを行う方法はありますか(例: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

ありがとう!それはまさに私が探していたものです! –

関連する問題