2014-01-21 154 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后端来实现。底线是不应该在“生产”代码中使用,但作为一个快速入侵确保它的工作原理。