如何解决Python中3D表单的数据分析
我的问题肯定已经在某个地方回答了,但我找不到它。
我有一个二进制的numpy 3D数组(形状=(512,512,304)),其中有一个随机形式(标记为1)。其他任何点都标记为0。
让我们以一个简单的例子为例。
我想将此表格绘制在3D绘图上,我们可以看到球体。
- 我已经尝试过3D绘图matplotlib,但无法掌握
- 我使用了来自(ipywidgets)的交互功能来逐片打印它,但这不是有效的
我还想计算表格的体积(可能是完全随机的多面体)
我在寻找建议而不是在寻求答案 预先感谢
解决方法
您可以使用voxels
,尽管如果尝试使用这么大的数组运行它会很慢。例如,您可以仅绘制10%的元素:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# Make a sphere
x,y,z = np.ogrid[-1:1:512j,-1:1:512j,-1:1:304j]
sphere = np.sqrt(x * x + y * y + z * z) < 0.5
# Make 3D axis
ax = plt.figure().add_subplot(projection='3d')
# Make voxels figures at 10% resolution
ax.voxels(filled=sphere[::10,::10,::10])
ax.figure.show()
输出:
,一种放置方法是使用小部件对其进行绘制:
def show_axial(image_array,slice):
plt.imshow(img_array[:,:,mr_slice].T,cmap="gray")
interact(show_axial,img_array = fixed(im_arr),slice=widgets.IntSlider(max=im_arr.shape[2] - 1,min = 0))
这给出了一个二维图,其中带有一个滑动条,滑动条的范围在0到图像宽度之间,并且可以逐个幻灯片显示。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。