2017-03-16 80 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

谢谢!这正是我一直在寻找的! –