【发布时间】:2016-05-07 20:38:29
【问题描述】:
我正在尝试使用 Mayavi 或 matplotlib 可视化天体物理学模拟。我得到了很多文件,这些文件都包含具有 (25,25,25) 索引的数据立方体。它们代表一颗行星(或行星的形成)并且具有物理位置和不同的物理尺寸。有没有办法缩放数据集,比如将它们添加到可以根据物理尺寸缩放并根据它们的位置放置的图中?
Fx:我有一个数据集,由地球上坐标 (178, 178, 178) 的维度 25*25*25 索引组成,数据集表示物理尺寸 (0.62, 0.62, 0.62)。另一个数据集也具有来自 kooordinate (6, 6, 6) 和大小 (0.11, 0.11, 0.11) 的 25*25*25 索引。如何将它们添加到一个数组(或绘图)中,以便根据它们的物理位置和大小进行缩放?
【问题讨论】:
-
一般来说,您可以选择一个共同的空间尺度(例如,它可能与您最精细采样的数据集相同),然后使用某种形式的将其他数据集上采样到相同的尺度插值(见
scipy.interpolate,scipy.ndimage.interpolation)。我不清楚“将它们添加到一个数组”是什么意思 - 你真的想计算它们的总和,还是你的意思是更复杂的东西?你提到了绘图,但你没有描述你想要制作什么样的情节。 -
将它们添加到一个数组中,意味着所有数据集由 25*25*25 个 numpy 数组组成,并添加到一个大数组中然后绘制。有没有一种方法可以一次将一个数据集添加到绘图中,然后对其进行缩放?我使用的绘图是 mayavi quiver3d、体积或流线型,但我看不出我制作哪个绘图有多重要。
-
仍然不清楚你所说的“添加”是什么意思 - 你的意思是大数组中的值应该是小数组中值的 sums,还是您的意思是以其他方式组合它们?
-
我之所以问你想制作什么样的情节是因为你用visualization、matplotlib和mayavi(!)标记了你的问题,加上你的情节类型想要制作将确定您需要的数据格式。
mayavi.mlab中的contour3D、quiver3d和flow绘图函数都接受x, y, z坐标向量,所以你不能根据子阵列的物理尺寸和位置来缩放和偏移这些吗? -
通过添加我的意思是把它们放到一个数组中,而不是总和,是的更复杂的东西。我使用了 flow 和 quiver3d。在那些我有 3 个矩阵,其中包含 x、y 和 z 值并绘制它们。但是坐标是由对我不起作用的数组的索引确定的,因为所有索引都被平等对待。
标签: python numpy matplotlib visualization mayavi