8

を使用して一連の点をプロットしmplot3dます。

import pylab as p
import mpl_toolkits.mplot3d.axes3d as p3

fig = p.figure()
ax = fig.add_subplot(111, projection='3d')

ax.scatter([1], [0], [0], c='r', marker='^', picker=5)
ax.scatter([0], [1], [0], c='g', marker='^', picker=5)
ax.scatter([0], [0], [1], c='b', marker='^', picker=5)

次に、ピッカー機能を追加します。

def onpick(event):
   ind = event.ind
   print ind

fig.canvas.mpl_connect('pick_event', onpick)

そして最後にそれをプロットします:

p.show()

クリックしているマーカーから 3D 座標を取得する方法はありますか? これまでのところ、で使用したリスト内のポイントのインデックスを取得できますが、何度ax.scatter()も使用するため、これではうまくいきax.scatter()ません。これはこのようにする必要があります (たとえば、異なる色を使用します)。

よろしく

4

1 に答える 1

10

event.artistの_offsets3d属性を使用して座標データを取得してから、indを使用して選択したポイントを取得できます。

def onpick(event):
    ind = event.ind[0]
    x, y, z = event.artist._offsets3d
    print x[ind], y[ind], z[ind]
于 2012-05-03T14:26:41.217 に答える