Интерактивно выбирайте точки на 3D-графике с помощью matplotlib - PullRequest
0 голосов
/ 28 февраля 2020

Я пытался выбрать определенные точки на трехмерном графике. Я хочу, чтобы код печатал точки, выбранные щелчком мыши, чтобы я мог рассчитать расстояние между двумя выбранными точками. Я не очень опытный, поэтому я попробовал несколько способов сделать это. Мой код:

enter image description here

%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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...