아래의 MWE에서와 같이 matplotlib에 onpick()
조치가있는 분산 형 그림이 있습니다.순간 순간 matplotlib 그림 업데이트
포인트가 선택 될 때마다 나는 그 포인트에서 계산을 실행하는데, 대략 30
초가 걸립니다. 사용자가 클릭하자마자 동일한 지점의 그림에 빨간색 원을 그려서 사용자에게 알리고 싶습니다.
다음 MWE 작동하지만, 그것은 단지 30
초 후 빨간색 원을 그립니다
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 파일을 호출합니다.
fig.canvas.draw()
에 대한 내 전화는 matplotlib에 의해 무시되지 않지만, onpick()
이 반환하는 경우에만 연기됩니다.