使用 Mayavi 的多半径单线
Single line with multiple radii with Mayavi
我想在 Mayavi 中绘制一条宽度或半径不恒定的单线(或管)。这似乎是一项简单的任务,尽管我可能不太了解幕后发生的事情以实现这一目标。
下面的代码创建了我想要的线条,我可以按颜色缩放;但是,我也想按宽度缩放。
import mayavi.mlab as mlab
import numpy as np
x = range(100)
y = range(100)
z = range(100)
s = np.random.uniform(0, 1, 100)
mlab.plot3d(x, y, z, s, tube_radius=10)
我没有所需输出的图像,因为我无法创建它,尽管它基本上是前面的图像按半径而不是颜色缩放,因此线条的某些区域会比其他地区。一种可能的解决方案是使用 tube_radius
参数并单独绘制每个部分,尽管这看起来确实是一种糟糕的做法,因为线条可能会变得很长并且有许多不同的部分。
在 GUI 中,您可以转到 Tube
管道并使用 Vary_radius = 'vary_radius_by_scalar'
在脚本中你可以做到
import mayavi.mlab as mlab
import numpy as np
x = range(100)
y = range(100)
z = range(100)
s = np.random.uniform(0, 1, 100)
t = mlab.plot3d(x, y, z, s, tube_radius=10)
t.parent.parent.filter.vary_radius = 'vary_radius_by_scalar'
因为表面的父级是模块管理器(颜色等),它的父级是 Tube
管道
我想在 Mayavi 中绘制一条宽度或半径不恒定的单线(或管)。这似乎是一项简单的任务,尽管我可能不太了解幕后发生的事情以实现这一目标。
下面的代码创建了我想要的线条,我可以按颜色缩放;但是,我也想按宽度缩放。
import mayavi.mlab as mlab
import numpy as np
x = range(100)
y = range(100)
z = range(100)
s = np.random.uniform(0, 1, 100)
mlab.plot3d(x, y, z, s, tube_radius=10)
我没有所需输出的图像,因为我无法创建它,尽管它基本上是前面的图像按半径而不是颜色缩放,因此线条的某些区域会比其他地区。一种可能的解决方案是使用 tube_radius
参数并单独绘制每个部分,尽管这看起来确实是一种糟糕的做法,因为线条可能会变得很长并且有许多不同的部分。
在 GUI 中,您可以转到 Tube
管道并使用 Vary_radius = 'vary_radius_by_scalar'
在脚本中你可以做到
import mayavi.mlab as mlab
import numpy as np
x = range(100)
y = range(100)
z = range(100)
s = np.random.uniform(0, 1, 100)
t = mlab.plot3d(x, y, z, s, tube_radius=10)
t.parent.parent.filter.vary_radius = 'vary_radius_by_scalar'
因为表面的父级是模块管理器(颜色等),它的父级是 Tube
管道