측정을 수행하고 측정을 수행하고 싶습니다. 측정 값은 입니다. 이 측정은 Python에서 꽤 오랜 시간이 걸립니다 (느린 연결을 통해 데이터를 검색해야 함). 문제는 측정 할 때 그래프가 정지한다는 것입니다. 측정 은 중심 파장을 설정 한 다음 일부 신호를 측정하는 것으로 구성됩니다. 이 , 스위치하지만 측정이 실행되는 동안 그림은 동결됩니다 -pylab 모듈 IPython에서 실행될 때이 작동합니다시간이 걸리는 측정을 수행하는 동안 matplotlib에 플로팅 라이브
# this is just some arbitrary library that has the functions set_wavelength and
# perform_measurement
from measurement_module import set_wavelength, perform_measurement
from pylab import *
xdata = np.linspace(600,1000,30) # this will be the x axis
ydata = np.zeros(len(xdata)) # this will be the y data. It will
for i in range(len(xdata)):
# this call takes approx 1 s
set_wavelength(xdata[i])
# this takes approx 10 s
ydata[i] = perform_measurement(xdata)
# now I would like to plot the measured data
plot(xdata,ydata)
draw()
:
내 프로그램은 다음과 같이 보입니다. 측정하는 동안 대화 형 플롯을 갖는 동작을 어떻게 수정할 수 있습니까?
측정을 수행하는 동안 python이 사용 중이므로 pylab.ion()을 사용할 수 없습니다.
관련,
더크
좋아, 그게 내 초기 생각 이었어. 어떻게 그걸 할거야? 플로팅이 별도의 스레드에있는 경우 프로그램이 주 스레드에서 사용 중이므로 도움이되지 않습니다. 예를 들어 주시겠습니까? – Dirklinux
나는 나의 대답에서 더 상세한 개요를 주었다. 여기에 귀하의 질문에 대답 : "프로그램이 메인 스레드에서 바쁠 것"에 대한 귀하의 데이터 수집 하드웨어 제한된 때문에, 귀하의 프로그램은 데이터 수집 스레드에서 정말 "바쁜"아니, 대부분은 단지 데이터를 기다리고있어. 필자가 경험 한 바에 따르면 스레딩은 데이터 수집 프로그램에서 매우 잘 작동하는 경우가 대부분입니다. – tom10
고마워요! 그것을 시도하고 게시 유지. – Dirklinux