2014-01-21 198 views
0

我有一個使用matplotlib每秒更新一次的情節。它只用於慢速監控,所以我採用了一種簡單的清理和繪圖方法,這種方法不是最優化的,但我希望簡單。無法調整matplotlib窗口的大小

my_fig = plt.figure() 
ax1 = plt.subplot(111) 
plt.show(block=False) 

while True: 

    data = read_data_and_process(...) 

    ax1.plot_date(data[0], data[1], '-')   
    my_fig.autofmt_xdate() 

    plt.draw() 
    time.sleep(1) 
    ax1.cla() 

它的作品,但如果我調整窗口的大小,劇情不會改變其大小。如果我繪製的數據沒有更新,我可以調整窗口的大小和情節相應調整大小:

my_fig = plt.figure() 
ax1 = plt.subplot(111)  

data = read_data_and_process(...)   
ax1.plot_date(data[0], data[1], '-')   
my_fig.autofmt_xdate()   
plt.show(block=True) 

我該怎麼做才能能夠調整在第一個例子中的窗口,同時更新數據?

謝謝!

回答

1

當我嘗試這段代碼時,我甚至無法抓住窗口來調整它的大小,因爲matplotlib後端的事件循環被卡住了。我建議看看matplotlib的Animation API(見examples)。

不過,這裏有一個很簡單的例子,可以讓你的例子通過強制Qt後端來實現。底線是不應該在「生產」代碼中使用,但作爲一個快速入侵確保它的工作原理。