5

在应用主成分分析或线性判别分析后,我很难使用 Matplotlib 在 3 维中可视化我的数据的重投影结果。做了散点图后,我无法在轻松缩放时旋转数据或更改视角(即使缩放后旋转轴也保持不变,如果缩放太多点就会消失),每次更改都需要一秒钟的时间。Matplotlib 非常有用,但对于这个特定的用例,它开始变得非常令人沮丧,因为它可能不是为此类任务设计的。Python 中是否有替代 Matplotlib 的方法可以更好地处理 3d 散点图,并且可以在云中流畅地导航?

下图中显示了一个示例。我在每个数据簇周围绘制了对应于特定类的球体,并用红色将重叠球体着色。现在我想看看这些球体是如何相交的。我认为 Matplotlib 最大的问题是它不允许用鼠标移动整个图形,它只允许围绕一个固定点旋转,一旦你放大一点,事情就会变得非常混乱。

在此处输入图像描述

4

3 回答 3

5

matplotlib 对于 3d 图形还不是很成熟:http: //matplotlib.org/mpl_toolkits/mplot3d/faq.html

mplot3d 旨在允许用户创建与 matplotlib 的 2D 绘图具有相同“外观”的简单 3D 图形。此外,用户可以使用他们已经熟悉的相同工具包来生成他们的 2D 和 3D 绘图。

我认为 3d 绘图中的简单导航并不容易(即使不调整库也无法实现 3d 缩放)。mplot3d 一开始并不是真的打算成为一个成熟的 3D 图形库,但对于需要基本 3D 和熟悉 matplotlib 2D 绘图结构的人来说,它是一个不错的补充。

您可能想看看 MayaVI(非常好):

MayaVi2 是一个非常强大且功能强大的 3D 图形库。对于高级 3D 场景和出色的渲染能力,强烈推荐使用 MayaVi2。

请注意,与 matplotlib 不同的是,MayaVI 尚不兼容 Python3(在可预见的将来可能不兼容),因此您需要安装 Python2。

于 2015-07-28T16:47:17.100 回答
0

ILNumerics ( http://ilnumerics.net/ )的 3D 图是一个非常好的替代方案,但不是在 Python 中。它在 .NET 中

于 2015-08-25T16:23:09.280 回答
0

Matplotlib 在 3D 上运行良好,但在需要交互时不会太快:

https://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html

Mayavi 非常快并且与 Python 3 兼容

https://docs.enthought.com/mayavi/mayavi/mlab.html#id1

于 2020-03-09T18:00:22.400 回答