如何从matplotlib figu获取方位角和仰角

2024-10-01 15:37:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我用matplotlib.pyplotnumpy绘制一组三维点。使用鼠标旋转图像会在“体形”窗口底部生成方位角和仰角。在

如何通过编程获得这些值,以便在以后的计算中使用它们,例如当鼠标松开或单击屏幕上的按钮时。在

我使用的是python2.7.5。我下面的代码应该可以说明这个问题。在

import numpy as np

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

mol=np.random.rand(6,3)*10.0

fig3d = plt.figure(figsize = ( 6.5, 6.5 ) )

fig3d.canvas.set_window_title('3D')

ax3d = fig3d.gca(  projection='3d')

ax3d.scatter( mol[:,0], mol[:,1], mol[:,2], s=200)  

plt.show()

Tags: 图像importnumpymatplotlibasnp绘制plt
1条回答
网友
1楼 · 发布于 2024-10-01 15:37:55

下面是一些代码,它使用回调函数打印出当前的方位角和仰角,并将它们附加到一个列表中,以便以后进一步使用。这些细节分别保存在ax3d.azim和{}中。在

每次你释放鼠标按钮,它都会调用on_click。这将允许您简单地将图形旋转到您选择的旋转位置,然后保存投影。在

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

mol=np.random.rand(6,3)*10.0

fig3d = plt.figure(figsize = ( 6.5, 6.5 ) )

fig3d.canvas.set_window_title('3D')

ax3d = fig3d.gca(projection='3d')
ax3d.scatter(mol[:,0], mol[:,1], mol[:,2], s=200)  

# List to save your projections to
projections = []

# This is called everytime you release the mouse button
def on_click(event):
    azim, elev = ax3d.azim, ax3d.elev
    projections.append((azim, elev))
    print(azim, elev)

cid = fig3d.canvas.mpl_connect('button_release_event', on_click)

plt.show()

相关问题 更多 >

    热门问题