2014-01-20 60 views
0

我是matplotlib中的新成員。 除了更新pyplot.show方法中的圖外,我還想更新不同線程中的無盡while循環中的數據 。 我嘗試使用線程導入,但它不工作 以及pyplot.show方法。 我知道我可以使用pyplot.ion,它對線程正常工作。 pyplot.ion的問題在於效率不高。 有沒有什麼辦法可以用pyplot.show代替?matplotlib更新線程中的數據

爲了讓自己清楚,我不想解決方案:

pyplot.ion() 
    .... 
    while True: 
    .... 
     pyplot.show() 

回答

0

我不知道是否能解決你的問題,但你可以嘗試使用pyplot.draw()而不是pyplot.show()。如果您已經使用過show()一次,它會更新情節嗎? draw()應該更新該圖。

我不知道你如何繪製數據,但假設你繪製的數據集大小相同,每次加快速度的一個技巧就是使用set_data(),如果你第一次繪製存儲線藝術家爲

x, y = generate_data_function() 
line, = pyplot.plot(x, y) 
pyplot.show() 

while True: 
    x, y = generate_data_function() 
    line.set_data(x, y) 
    pyplot.draw() 

希望它有幫助!正如我所說,我不完全確定它是否真的解決了您的問題,但至少可以嘗試。

+0

嗯,是的,這工作,但我已經知道關於這個解決方案:「我知道我可以使用pyplot.ion和正常工作與線程」。但我使用'pyplot.ion'而不是'pyplot.show'。我認爲'pyplot.show'將不起作用,因爲它會停在那條線上。 – Py566