我有一个大集(100 +)256x256标量2D numpy数组。每个阵列基本上都是通过3D图像的切片,并且每个阵列均匀分开。Python:2D numpy阵列的大集......如何在3D中可视化?
我是一个python noob ...有关如何创建一个很好的三维可视化这个数据的任何提示?
我是否需要将我的100多个2D标量数组编译为更大的3D数组?
干杯!
我有一个大集(100 +)256x256标量2D numpy数组。每个阵列基本上都是通过3D图像的切片,并且每个阵列均匀分开。Python:2D numpy阵列的大集......如何在3D中可视化?
我是一个python noob ...有关如何创建一个很好的三维可视化这个数据的任何提示?
我是否需要将我的100多个2D标量数组编译为更大的3D数组?
干杯!
不完全确定您希望可视化效果如何?听起来有点像你想要可视化4D功能?
您可以在空间中创建3D网格(例如,请参阅Numpy meshgrid in 3D),然后使用矩阵/矩阵数值对散点图中的点进行着色?
如果你能详细说明你想看到什么,可能会更具体。
编辑:
您的评论之后,那它还是听起来象是非常很难想象,但我想你可以做这样的事情(我已经生成的随机数据,并有一个更小的尺寸比你)
import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
(X,Y,Z) = np.mgrid[-10:10:25j, -10:10:25j, -10:10:10j]
col = np.random.rand(25,25,10)
fig = plt.figure(1)
fig.clf()
ax = Axes3D(fig)
ax.scatter(X,Y,Z, c=col)
plt.draw()
plt.show()
导致
注意,这可能是少一些无用与期待非随机数据。
你需要给我们更多的信息,因为你如何想象它取决于你想从中得到什么!请注意,此问题总是会有多个可能的答案,因为您试图在2D屏幕上显示固有3D的信息。
这样做的一种方法是对2D“表面”图的create a movie,并播放它们。这基本上只是一个接一个地绘制所有切片。
如果你想一次查看所有的3D数据,你很可能不能,因为我不知道任何用于Python的容积绘图工具。可能最接近的是MayaVi
如果您向我们提供更多关于您想要完成的信息,请尽可能详细地说明,我们可以为您提供更具体的示例/代码资源。
谢谢。我拿起Mayavi,但我似乎无法找到任何工具来绘制一个简单的3D标量场! – Draper
你能解释一下“绘制一个简单的3d标量场”是什么意思吗?你能给我们一个可视化的例子来证明你想要什么吗? – staticfloat
首先,您需要找到一个能够进行3D可视化的库...然后您可以按照他们的API ... – mgilson