numpy 3d array, matplotlib

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

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")