2016-12-21 2 views
0

matplotlib를 사용하여 대화식 그림을 만듭니다.matplotlib (Python)의 GUI 버튼을 사용하여 일시 중지 해제

입력으로 제공된 데이터는 실시간으로 계산되며 데이터를 그릴 준비가되면 그림을 만드는 데 사용 된 함수가 호출되므로 애니메이션 모듈을 사용할 수 없습니다. 이 외에도 새 데이터는 이전 축과 동일한 축에 표시되지 않으며 출력 수치에는 3D 플로팅 및 GUI 위젯이 포함됩니다.

데이터가 그려 질 때마다 사용자가 출력과 상호 작용하려는 경우 plt.pause (30)를 호출합니다. 30 초가 지나면 수치가 업데이트됩니다.

내가하려고하는 것은 눌렀을 때 plt.pause를 취소하고 프로그램 실행을 차단 해제하는 GUI 단추를 만드는 것입니다. 지금까지이 간단한 (?) 질문에 대한 답을 찾을 수 없었습니다. 누구든지 gui 위젯에 바인딩하여 GUI에서 plt.pause()를 중지 할 수있는 방법이 있는지 알고 있습니까? 그렇지 않은 경우이 상황을 우회 할 수있는 방법이 있습니까?

답변

0

좋아, 나는 주된 생각을 이해하기 위해 matplotlib의 github에 가야만했다. 다음과 같은 기능 :

def button_function(val): 
    plt.gcf().canvas.stop_event_loop() 

는 버튼을 on_clicked을 사용하여 연결했을 때 내가 원하는 정확히 않습니다. 이 질문은 어느 날 나를 당혹스럽게 만들었고 질문을 올렸을 때 10 분 이내에 답을 찾았습니다. 내게 그것을 쓰는 방법을 제공하는 stackoverflow 감사합니다 ....

+2

[고무 오리 디버깅] (https://en.wikipedia.org/wiki/Rubber_duck_debugging) 다시 저장합니다! – Kroltan

관련 문제