gpt4 book ai didi

python - 使用 mlab.surf() 将蒙版与 Mayavi 3d 曲面图结合使用

转载 作者:太空宇宙 更新时间:2023-11-04 05:46:31 25 4
gpt4 key购买 nike

使用 mlab.surf() 函数绘制 3d 表面时,Nan 值的存在会导致奇怪的绘制行为。任何关于我可能做错的想法都将不胜感激。

In[37]: import mayavi
In[38]: print mayavi.__version__
4.4.0

from mayavi import mlab
j = np.copy('some 2d-array') # where j is shape (680, 680) and contains Nans
mlab.surf(j)

enter image description here

如果我用最小值替换 NaN,绘图看起来不错,但在我想要剪裁的边缘周围有一个人造平面:

j[np.isnan(j)]=j[~np.isnan(j)].min()
mlab.surf(j) # where j has been set to j.min() where j==np.nan

enter image description here

如果我然后添加一个对应于 j==j.min() 区域的 mask ,我会再次得到奇怪的输出(我也尝试过直接在重新定义 NaN 之前的数组):

m = np.ma.masked_where(j==j.min(), j).mask
mlab.surf(j, mask=m)

enter image description here

最佳答案

我会尝试这样的事情:

    #first mask all the NaN:
maskedarray = np.ma.masked_invalid(j)
from mayavi import mlab
mlab.figure(1, fgcolor=(0, 0, 0), bgcolor=(1, 1, 1))
surH = mlab.surf(maskedarray, warp_scale='auto', mask=maskedarray.mask)
mlab.show()

关于python - 使用 mlab.surf() 将蒙版与 Mayavi 3d 曲面图结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32054681/

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