2012-02-22 2 views
4

저는 다양한 외부 장비 (arduinos에서 오실로스코프에 이르기까지)에서 데이터를 추출하기 위해 파이썬을 광범위하게 사용했으며, 물건을 그리는 단순한 방법을 찾고 있습니다. 훨씬 더 복잡 그 엘리 Bendersky http://eli.thegreenplace.net/2008/08/01/matplotlib-with-wxpython-guis/Python에서 최소의 실시간 플로팅

그러나 코드의 범위에 의해 코드의 미세 조각에 가장 가리키는 What is the best real time plotting widget for wxPython?

된다

는 스택 오버 플로우에 비슷한 질문에 이미 몇 가지 답변을 있어요 내가 찾는거야. 나는 소스에서 스트리밍 할 때 실시간으로 데이터를 플롯하는 다소 단순한 것을 찾고 있습니다. GUI, 라디오 버튼, 노브 및 슬라이더, 또는 그와 같은 것이 필요하지 않습니다.

루프에서 pylab.plot() 또는 pylab.show()를 호출하는 것과 같은 해결 방법이 올바른 동작을하지 않는 것처럼 보입니다.

제안 사항이 있습니까?

+0

모양을? [matplotlib animations] (http://www.scipy.org/Cookbook/Matplotlib/Animations) – cha0site

답변

4

글쎄, 이건 wxPython 대답이 아니지만 나는 이런 종류의 일에 Chaco을 사용했습니다. 유스 케이스와 비슷할 수있는 의 좋은 예가 있으며 멋진 tutorial입니다. 따라서 wxPython에 다른 이유로 묶여 있지 않다면 한 번 볼 가치가 있습니다. 당신이 찾은하기 matplotlib 예제 게다가

+0

고마워요! Chaco는 매우 유용하게 보이며, 내가 사용하려고하는 것과 같은 것들을 의미합니다. 나는 그것을 살펴볼 것이다 : –

+0

FYI, 자습서 링크는 2015 년 2 월 8 일에 깨졌습니다. – dcoz

+0

고마워, 이제 고쳐졌습니다. – snim2

1

당신이 GUI 루프에 신호를 보낼 필요가 음모를 꾸미고 실시간을 사용합니다. 대화 형 모드 (Ipython)를 사용하는 경우 스레드를 사용하는 것이 좋습니다.

GUI 및 스레딩을 처리하기위한 데코레이터를 작성했습니다. 정말 쉽고 깨끗합니다. 그들은 QT 백엔드를 위해 일합니다. https://gist.github.com/Vrekrer/106c49a3ae6d420937aa

Ipython의 샘플 코드는 여기에 주어진 힌트를 시도해 봤어이

#%pylab qt 

#https://gist.github.com/Vrekrer/106c49a3ae6d420937aa  
import QThreadDecorators 
import time 

@QThreadDecorators.GUI_Safe 
def myplot(x,y): 
    #This will plot a new line for each call (ok for an example) 
    plot(x, y, 'bo-') 
    grid(True) 


@QThreadDecorators.AsQThread 
def myLoop(x): 
    y = x * nan 
    for i, xi in enumerate(x): 
     #get some data 
     time.sleep(1) 
     y[i] = xi**2 
     #plot in real time 
     myplot(x,y) 

#just call the function and it will run on a thread 
myLoop(arange(20)) 
관련 문제