gpt4 book ai didi

python - 在python中创建3D矩阵的2D投影

转载 作者:太空宇宙 更新时间:2023-11-03 19:09:25 26 4
gpt4 key购买 nike

简短版本:我有一个充满不同值的 NxNxN 矩阵。我想创建它的 2D 投影,看起来完全像这样:http://tinyurl.com/bellfkn (如果可能的话也可以是 3D!)

长版本:我使用以下循环制作了一个维度为 NxNxN 的密度矩阵:

ndim = 512
massmat = np.zeros((ndim,ndim,ndim))
for i in range(0,npoints):
massmat[int(x1[i]),int(y1[i]),int(z1[i])] = massmat[int(x1[i]),int(y1[i]),int(z1[i])] + mpart

densemat = massmat/volumeofcell

massmat 是一个 numpy 数组。

所以基本上我现在有一个 NxNxN 矩阵,其中某些单元格在这种情况下包含密度(单位为 g/cm^3)。有没有办法将其转换为 2D 投影 - 密度的侧面 View ,并用颜色条指示密集区域和密度较低的区域?

在 Matlab 中我会这样做:

imageArray2Dmesh = mean(densemat, 3);
figure
sc(imageArray2Dmesh, 'pink')

它给了我一个密度投影 - 我想做同样的事情,但是用Python。有没有办法在 3D 投影中查看整个 NxNxN 矩阵?就像链接一样,但是是 3D 的。那太好了。

最佳答案

您可以在 numpy 和 matplotlib 中使用非常相似的代码:

import numpy as np
import pylab as plt

imageArray2Dmesh = np.mean(mesh_reshape, axis=2);
plt.figure()
plt.pcolor(imageArray2Dmesh, cmap = ,cmap=plt.cm.pink)
plt.colorbar()
plt.show()

您还有更多命令,但这只是由于 matlab 和 matplotlib 中的图形方法不同(提示:从长远来看,matplotlib 方法更好)

如果您想要从另一个方向进行项目,只需更改轴参数(请记住,python 的索引从 0 开始,而不是像 matlab 那样从 1 开始)。

对于从通用方向进行投影......嗯,这相当困难。

顺便说一句,如果您需要查看一些 3D 数据,我强烈建议您花一些时间来探索 mayavi。它仍然是一个 Python 库,并且对于 3D 成像来说非常强大:

http://docs.enthought.com/mayavi/mayavi/auto/examples.html

关于python - 在python中创建3D矩阵的2D投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13521984/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com