用于 3D 散点图的 Matplotlib 替代方案

Meh*_*hdi 5 python matplotlib scatter3d

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

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

在此处输入图片说明

Nih*_*ihl 5

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

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

我不认为在 3d 图中轻松导航是容易实现的(即使不调整 lib 也无法进行 3d 缩放)。mplot3d 一开始并不是真的想成为一个成熟的 3D 图形库,但对于需要基本 3D 和熟悉 matplotlib 2D 绘图结构的人来说,它更像是一个很好的补充。

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

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

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