我想在測量結果爲 運行時執行測量並繪製圖形。這個測量需要一段時間的python(它必須通過慢速連接檢索數據)。問題是測量時圖形凍結。測量 包括設置中心波長,然後測量一些信號。在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()
,當它在IPython中運行與-pylab模塊接通, 但測量運行時這一數字將凍結這將工作。如何修改 的行爲在測量時有交互式繪圖?
你不能簡單地使用pylab.ion(),因爲python在執行測量時很忙。
問候,
德克
好的,那是我最初的想法,但你會怎麼做?如果繪圖是在一個單獨的線程中,它將無濟於事,因爲程序將在主線程中忙碌。你能舉個例子嗎? – Dirklinux 2012-03-21 12:42:19
我在答案中給出了更詳細的大綱。在這裏回答你的問題:關於「程序將在主線程中忙碌」,因爲你的數據收集是硬件有限的,你的程序在數據收集線程中並不真正「忙碌」,它主要只是在等待數據。至少在我的經驗中,線程在數據收集程序中運行得很好。 – tom10 2012-03-21 15:40:18
非常感謝!將嘗試它,並讓你張貼。 – Dirklinux 2012-03-22 10:53:40