2012-05-03 4 views
6

私はmplo3dを使用して一連の点プロット:mplot3d(matplotlib + python)で取り出されたオブジェクトのプロパティを取得する方法は?

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を何度も使っているので、 はそれをカットしません。これはこの方法です例)あなたは座標データを、その後、選んだポイントを取得するためにIND使用取得するevent.artistの_offsets3d属性を使用することができます

よろしく

答えて

8

def onpick(event): 
    ind = event.ind[0] 
    x, y, z = event.artist._offsets3d 
    print x[ind], y[ind], z[ind] 
+0

それは作品を!どうもありがとう。 – user1371437

+0

ありがとう、これは動作します!!!! – Tom

関連する問題