Я пытался выбрать определенные точки на трехмерном графике. Я хочу, чтобы код печатал точки, выбранные щелчком мыши, чтобы я мог рассчитать расстояние между двумя выбранными точками. Я не очень опытный, поэтому я попробовал несколько способов сделать это. Мой код:
![enter image description here](https://i.stack.imgur.com/M0aZ6.png)
%matplotlib notebook
from mpl_toolkits.mplot3d import Axes3D
import matplotlib as mp
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x1 = -100 + df1['N']
y1 = -1*df1['V']
z1 = -2.588 + df1['E']
x2 = df2['N']
y2 = -1*df2['V']
z2 = -1.294+df2['E']
ax.plot (x1,y1,z1)
ax.plot (x2,y2,z2)
ax.set_xlabel('N axis')
ax.set_ylabel('V axis')
ax.set_zlabel('E axis')
ax.view_init(elev=93 , azim=-89 )
projections = []
ax3d = fig.gca(projection='3d')
def on_click(event):
azim, elev = ax3d.azim, ax3d.elev
projections.append((azim, elev))
print(azim, elev)
cid = fig.canvas.mpl_connect('button_release_event', on_click)
def onclick(event):
print('%s click: button=%d, x=%d, y=%d, z=%d, xdata=%f, ydata=%f, zdata=%f' %
('double' if event.dblclick else 'single', event.button,
event.x, event.y, evente.z, event.xdata, event.ydata, event.zdata))
cid = fig.canvas.mpl_connect('button_press_event', onclick)
plt.show()