gpt4 book ai didi

matplotlib - 二维标量场 : draw iso surface (iso line) with opacity

转载 作者:行者123 更新时间:2023-12-02 03:39:40 29 4
gpt4 key购买 nike

我在二维网格上有两个标量场。我想为第一个标量场绘制一条等值线,并根据第二个标量场设置其不透明度。

我从 this SO answer 开始尝试使用 mayavi但我无法从 3D 切换到 2D。

下面是我在 mayavi (python) 中绘制 iso 线的方法。

 import numpy
from mayavi import mlab

x, y, z = numpy.ogrid[-5:5:64j, -5:5:64j, 0:0:1j]

grid_x, grid_y, grid_z = numpy.mgrid[-5:5:64j, -5:5:64j, 0:0:1j]

scalars = x*x*0.5 + y*y
opacity = x**2
opacity /= numpy.max(opacity) #normalize

src = mlab.pipeline.scalar_field(grid_x,grid_y,grid_z, scalars)
obj = mlab.pipeline.iso_surface(src, contours=[1,2,4,8,16,25,37],line_width=3)
mlab.show()

我不关心 iso 线是如何获得的:任何科学数据可视化工具和编程语言都可以。我唯一需要的是能够设置线条的不透明度。

谢谢

最佳答案

您可以使用以下方式设置线条的全局不透明度

obj.actor.property.opacity = opacity

但是不透明度必须是标量,不能使用向量,因为不透明度是 actor 的全局属性

关于matplotlib - 二维标量场 : draw iso surface (iso line) with opacity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20874359/

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