onpick()
以下のMWEのように、matplotlibに散布図があり、それらにアクションがあります。
ポイントが選択されるたびに、そのポイントで計算を実行します。これには約30
数秒かかります。ユーザーがクリックするとすぐに、図の同じポイントに赤い円を描いてユーザーに通知したいと思います。
30
次の MWE は機能しますが、数秒後にのみ赤い円を描画します。
from numpy import take
from numpy.random import randn
from time import sleep
import matplotlib.pylab as plt
fig, ax = plt.subplots()
X, Y = randn(2, 10)
ax.scatter(X, Y, picker=True)
def onpick(event):
ax.scatter(take(X, event.ind), take(Y, event.ind), s=40, facecolors='none', edgecolors='red')
fig.canvas.draw()
sleep(30)#here I have MyLongComputation() in my code
fig.canvas.mpl_connect('pick_event', onpick)
plt.show()
すぐに効果のある人物描画アクションをリクエストする方法はありますか? 問題が発生した場合に備えて、対話モードで Ipython からファイルを呼び出しています。
への私の呼び出しは matplotlib によって無視されず、返さfig.canvas.draw()
れたときにのみ延期されることに注意してください。onpick()