2d array라면 matplotlib에서 plot이 잘 그려진다. 그런데 3d array라면 오류가 발생한다. 1차원 값으로 분리해줘야 한다. 여러 방법을 시도해 봤는데 numpy.nonzero를 이용한 방법이 간결하게 먹힌다. 색상 정보는 나에게 중요한게 아니라서 이 방법이 좋았다.

Creating a 3D plot from a 3D numpy array
Ok, so I feel like there should be an easy way to create a 3-dimensional scatter plot using matplotlib. I have a 3D numpy array (dset) with 0’s where I don’t want a point and 1’s where I do, basica…
dcm_x,dcm_y,dcm_z = blk.nonzero()
dcm_color = numpy.random.rand(len(dcm_x))
fig = plt.figure(figsize=(10, 10))
ax = fig.add_subplot(projection='3d')
ax.set_zlim3d(-600, 0)
ax.view_init(30, 145)
ax.scatter(dcm_x,dcm_y,-dcm_z,c=dcm_color)
plt.savefig("/root/" + i +".png")