mplot3d 常见问题解答#
mplot3d 与 Mayavi 有何不同?#
Mayavi 是一个非常强大且功能强大的 3D 图形库。对于高级的 3D 场景和出色的渲染能力,强烈建议使用 Mayavi。
mplot3d 旨在允许用户创建与 matplotlib 的 2D 绘图具有相同“外观”的简单 3D 图形。此外,用户可以使用他们已经熟悉的相同工具包来生成他们的 2D 和 3D 绘图。
我的 3D 绘图在某些视角下看起来不正确#
这可能是 mplot3d 最常报告的问题。问题是——从某些视角来看——一个 3D 对象会出现在另一个对象的前面,即使它在物理上是在它后面。这可能导致绘图看起来“物理上不正确”。
不幸的是,虽然正在做一些工作来减少这个工件的发生,但它目前是一个棘手的问题,直到 matplotlib 支持其核心的 3D 图形渲染才能完全解决。
该问题是由于将 3D 数据减少到 2D + z 阶标量而发生的。单个值表示集合中 3D 对象所有部分的第 3 维。因此,当两个集合的边界框相交时,就有可能出现这种伪影。此外,两个 3D 对象(例如多边形或补丁)的交集无法在 matplotlib 的 2D 渲染引擎中正确渲染。
在将 OpenGL 支持添加到所有后端之前,这个问题可能不会得到解决(非常欢迎补丁)。在此之前,如果您需要复杂的 3D 场景,我们建议您使用 MayaVi。
我不喜欢 3D 情节的布局方式,我该如何更改?#
从历史上看,mplot3d 遭受了用于控制视觉效果的参数的硬编码,例如标签间距、刻度长度和网格线宽度。正在努力消除这个问题。对于 matplotlib v1.1.0,有一种半官方的方式来修改这些参数。有关更多信息,请参阅
mplot3d.axis3d
mplot3d API 文档部分中的注释。