我有时会因为 matplotlib 的 mplot3d 中缺少某些渲染功能而感到沮丧。在大多数情况下,我确实发现我可以在 mayavi 中得到我想要的东西,但是 matplotlib 3d 轴仍然更可取,如果只是为了美观,比如 LaTeX 化的标签和与我的其他图形的视觉一致性。
我的问题是关于明显的 hack:是否可以在没有轴的情况下在 Mayavi 中绘制一些 3d 对象(表面或 3d 散点图或其他),导出该图像,然后将其放置在具有正确大小、方向、坐标的 matplotlib Axes3D 中投影等?任何人都可以想出实现这一目标需要什么的大纲,或者甚至提供一个框架解决方案?
前段时间我摆弄了这个,发现我在导出透明背景 mayavi 图形并将其放置在空的 matplotlib Axes3D(带有刻度、标签等)方面没有问题,但我并没有得到什么mayavi 和 matplotlib 的相机配置相匹配。简单地将方位角、仰角和距离这三个常用参数在两种环境中设置为相等并不能解决问题;大概需要的是对渲染整个场景的透视(或其他)变换进行一些考虑,而我在该领域相当无能为力。
看起来这可能有用:http : //docs.enthought.com/mayavi/mayavi/auto/example_mlab_3D_to_2D.html