Mayavi imshow 遮盖了 quiver3d
Mayavi imshow obscures quiver3d
我正在尝试将 quiver3d
图覆盖在 mayavi
中的 imshow
图上。我使用的代码看起来像这样:
from mayavi import mlab
import numpy as np
img = np.random.uniform(0, 255, size=(512, 512)).astype(np.int)
N = 10000
event_size = 2
xs = np.random.uniform(img.shape[1], size=N)
ys = np.random.uniform(img.shape[0], size=N)
ts = np.sort(np.random.uniform(1000, size=N))
ps = np.random.randint(0,2,size=N)
mlab.imshow(img, colormap='gray', extent=[0, img.shape[0], 0, img.shape[1], ts[0], ts[1]])
colors = [0 if p>0 else 240 for p in ps]
ones = np.ones(len(xs))
p3d = mlab.quiver3d(ys, xs, ts, ones, ones,
ones, scalars=colors, mode='sphere', scale_factor=event_size)
p3d.glyph.color_mode = 'color_by_scalar'
p3d.module_manager.scalar_lut_manager.lut.table = colors
mlab.draw()
mlab.show()
我遇到的问题是 imshow
图像似乎完全遮盖了 quiver
情节,即使 'quivers' 位于图像上方。为了说明,一个 GIF:
我做错了什么?非常感谢!
==== 编辑 ====
这也是我实际用例的 GIF,我认为它比上面的最小示例更能说明问题:
好的,所以解决方案最终是切换到 nvidia 显卡。我是 运行 带有 GeForce GTX 1050 maxQ GPU 和英特尔板载显卡的笔记本电脑上的代码。使用板载显卡 (sudo prime-select intel
),我遇到了错误,当我切换到专用显卡 (sudo prime-select nvidia
) 时,我得到了所需的输出。
我正在尝试将 quiver3d
图覆盖在 mayavi
中的 imshow
图上。我使用的代码看起来像这样:
from mayavi import mlab
import numpy as np
img = np.random.uniform(0, 255, size=(512, 512)).astype(np.int)
N = 10000
event_size = 2
xs = np.random.uniform(img.shape[1], size=N)
ys = np.random.uniform(img.shape[0], size=N)
ts = np.sort(np.random.uniform(1000, size=N))
ps = np.random.randint(0,2,size=N)
mlab.imshow(img, colormap='gray', extent=[0, img.shape[0], 0, img.shape[1], ts[0], ts[1]])
colors = [0 if p>0 else 240 for p in ps]
ones = np.ones(len(xs))
p3d = mlab.quiver3d(ys, xs, ts, ones, ones,
ones, scalars=colors, mode='sphere', scale_factor=event_size)
p3d.glyph.color_mode = 'color_by_scalar'
p3d.module_manager.scalar_lut_manager.lut.table = colors
mlab.draw()
mlab.show()
我遇到的问题是 imshow
图像似乎完全遮盖了 quiver
情节,即使 'quivers' 位于图像上方。为了说明,一个 GIF:
我做错了什么?非常感谢!
==== 编辑 ==== 这也是我实际用例的 GIF,我认为它比上面的最小示例更能说明问题:
好的,所以解决方案最终是切换到 nvidia 显卡。我是 运行 带有 GeForce GTX 1050 maxQ GPU 和英特尔板载显卡的笔记本电脑上的代码。使用板载显卡 (sudo prime-select intel
),我遇到了错误,当我切换到专用显卡 (sudo prime-select nvidia
) 时,我得到了所需的输出。