我将制作动画。在每一帧中,我都希望包含一个用
mlab.pipeline.iso_surface(source, some other superfluous args)
以及一个matplotlib图
pylab.plot(args)
我有两个单独的脚本,但不知道如何将它们组合成一个图形。我希望最终产品是一个脚本,其中包含我目前拥有的两个脚本的代码。
最佳答案
阿飞,没有直接的方法,因为使用的后端是如此不同。似乎不可能将matplotlib
轴添加到mayavi.figure
或反之亦然。
但是,使用mlab.screenshot
有一种“方法”。
import mayavi.mlab as mlab
import matplotlib.pyplot as plt
# create and capture a mlab object
mlab.test_plot3d()
img = mlab.screenshot()
mlab.close()
# create a pyplot
fig = plt.figure()
ax1 = fig.add_subplot(121)
ax1.plot([0,1], [1,0], 'r')
# add the screen capture
ax2 = fig.add_subplot(122)
ax2.imshow(img)
ax2.set_axis_off()
这不一定是做事情的最好方法,而且您可能会遇到解决问题(检查
mayavi
窗口的大小)。然而,在大多数情况下,它能完成任务。关于python - 在同一图中组合mayavi和matplotlib,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24768179/