更改 3D 绘图中的旋转中心

jmi*_*rdi 5 python matplotlib matplotlib-3d

我在 matplotlib 中有一个 3D 线图,使用以下代码创建:

    def view(self):
        from mpl_toolkits.mplot3d import Axes3D  #noqa
        import matplotlib.pyplot as plt

        ax = plt.figure().gca(projection='3d')
        history = np.array(self.position_history)
        x, y ,z = history[:, 0], history[:, 1], history[:, 2]
        ax.plot(x, y, z)

        plt.show()
Run Code Online (Sandbox Code Playgroud)

history是一个 Mx3 点数组。这工作正常并按预期弹出一个情节。我可以通过单击并拖动来交互修改方位角和仰角。我可以通过右键单击和拖动来缩放。

但是我想知道是否可以修改平移和缩放的中心点?我想放大右上角,然后以右上角为旋转中心平移。如果您曾经使用过 SolidWorks 或其他 CAD 程序,这就是我所追求的行为。这可行吗?如果不是交互式的,我可以通过编程来完成吗?

最后,如果这一切在 matplotlib 中都不可能实现,是否还有另一个库可以实现我想要的功能?

小智 3

我过去在定制 mplot3d 方面也遇到过麻烦,但不太成功。

最后,如果这一切在 matplotlib 中都不可能实现,是否还有另一个库可以实现我想要的功能?

你可以用mayavi来做到这一点

是一个相关的 stackoverflow 答案,用于自定义与情节交互的方式

还有各种关于动画制作和使用 Mayavi 的有用提示和技巧

(如果这没有用,请道歉)

  • 虽然此链接可以回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会变得无效。 (3认同)