mplot3d 常见问题解答#

mplot3d 与 Mayavi 有何不同?#

Mayavi 是一个非常强大且功能丰富的三维绘图库。对于高级三维场景和出色的渲染能力,强烈推荐使用 Mayavi。

mplot3d 旨在让用户能够使用与 matplotlib 的 2D 图表相同的“外观和感觉”创建简单的 3D 图表。此外,用户可以使用他们已经熟悉的相同工具包来生成他们的 2D 和 3D 图表。

我的3D图在某些视角下看起来不对#

这可能是 mplot3d 最常被报告的问题。问题在于 -- 从某些视角来看 -- 一个 3D 对象会出现在另一个对象的前面,即使它在物理上是位于后面的。这可能导致绘图看起来“不符合物理规律”。

不幸的是,尽管正在进行一些工作来减少这种伪影的出现,但它目前是一个棘手的问题,除非 matplotlib 在其核心支持 3D 图形渲染,否则无法完全解决。

这个问题是由于将3D数据简化为2D + z顺序标量引起的。一个单一的值代表了一个集合中所有3D对象的第三维度。因此,当两个集合的边界框相交时,这种伪影就可能发生。此外,两个3D对象(如多边形或补丁)的交集无法在matplotlib的2D渲染引擎中正确渲染。

这个问题可能不会被解决,直到所有后端都添加了OpenGL支持(非常欢迎补丁)。在此之前,如果你需要复杂的3D场景,我们推荐使用 MayaVi

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

历史上,mplot3d 在控制标签间距、刻度长度和网格线宽度等视觉效果的参数硬编码方面存在问题。目前正在进行工作以消除这一问题。对于 matplotlib v1.1.0,有一种半官方的方式来修改这些参数。更多信息请参阅 mplot3d API 文档中 mplot3d.axis3d 部分的注释。