MPLOT3D FAQ

mplot3d与Mayavi有何不同?

Mayavi 是一个功能强大的三维图形库。对于高级3D场景和出色的渲染功能,强烈建议使用Mayavi。

mplot3d旨在允许用户创建与Matplotlib的二维图具有相同“外观和感觉”的简单三维图。此外,用户可以使用他们已经熟悉的工具箱来生成二维和三维绘图。

我的3D绘图在某些视角下看不正确

这可能是Mplot3d最常见的问题。问题是,从某些视角来看,一个3d对象会出现在另一个对象的前面,即使它在物理上位于该对象的后面。这可能导致绘图看起来“物理上不正确”。

不幸的是,虽然正在做一些工作来减少这种伪影的发生,但它目前是一个棘手的问题,在Matplotlib支持其核心的3D图形绘制之前,无法完全解决。

该问题是由于将三维数据减少到二维+z阶标量。单个值表示集合中三维对象的所有部分的三维。因此,当两个集合的边界框相交时,就有可能发生此工件。此外,Matplotlib的二维渲染引擎无法正确渲染两个三维对象(如多边形或面片)的交叉点。

在OpenGL支持添加到所有后端之前,这个问题可能不会得到解决(补丁非常受欢迎)。在此之前,如果您需要复杂的3D场景,我们建议使用 MayaVi .

我不喜欢3D绘图的布局,我该如何更改?

过去,mplot3d曾遭受过用于控制视觉效果的参数硬编码,如标签间距、刻度长度和网格线宽度。正在努力消除这个问题。对于Matplotlib v1.1.0,有一种半官方的方式来修改这些参数。请参见中的注释 mplot3d.axis3d 有关详细信息,请参阅mplot3d api文档的部分。