【问题标题】:Matplotlib alternative for 3D scatter plotsMatplotlib 替代 3D 散点图
【发布时间】:2015-10-18 21:00:07
【问题描述】:

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

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

【问题讨论】:

  • 不知道你的问题是什么没有代码但你看过这里:pythonprogramming.net/matplotlib-3d-scatterplot-tutorial
  • 正如我刚才所说,Matplotlib 不允许在云上进行良好的旋转和缩放。当你绘制几千个点时,它会像地狱一样滞后。
  • 您可以使用三角形图来显示从 K 维空间到 2D 的不同投影 (github.com/dfm/triangle.py)
  • matplotlib 对于 3D 图形还不是很成熟:matplotlib.org/mpl_toolkits/mplot3d/faq.html。我认为 3d 绘图中的简单导航是不可能的(即使不调整库也无法实现 3d 缩放)。您可能想看看 MayaVI。
  • @Nihl 非常感谢,Mayavi 正是我所需要的 :),您可以将其更改为答案。

标签: python matplotlib scatter3d


【解决方案1】:

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。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      Mayavi 非常快并且与 Python 3 兼容

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-07
        • 2021-10-21
        • 2019-07-13
        • 2011-07-26
        相关资源
        最近更新 更多