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

    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()

这里history是一个mx3点数组。这工作很好,并弹出了一个预期的情节。我可以点击并拖动以交互方式修改方位角和仰角。我可以通过右键单击和拖动来缩放。
但是我想知道是否可以修改平移和缩放的中心点?我想放大右上角,然后以右上角为旋转中心。如果你曾经使用过solidworks或其他cad程序,这就是我所追求的行为。这可行吗?如果不是交互的,我可以用编程的方式来做吗?
最后,如果在matplotlib中这一切都不可能实现,是否还有其他库可以实现我想要的功能?

最佳答案

我在过去也遇到过定制mplot3d的麻烦,但没有成功。
最后,如果在matplotlib中这一切都不可能实现,是否还有其他库可以实现我想要的功能?
您可以使用mayavi
here是一个相关的堆栈溢出解决方案,用于自定义如何与您的情节进行交互。
也有各种有用的tips and tricks动画和一般使用Mayavi
(如果这没用,请道歉)

08-18 08:41