我知道在matplotlib和線程上有相當多的問題,而且pyplot也不是線程。但是,我無法找到關於這個特定問題的任何信息。我想要做的是:繪製一個數字並每秒更新一次。爲此,我想創建一個線程,但到目前爲止,我甚至無法從線程中獲得真實的情節。另外,我堅持使用qt4,所以它可能是其他後端行爲不同。在線程中使用matplotlib繪圖
下面是一個非常簡單的例子:在plot_a_graph()
中創建了一個圖表。當從主程序調用時,這工作正常,但延遲了主代碼的進一步執行。但是,從線程調用時,不會顯示圖形。
import matplotlib
matplotlib.use("qt4agg")
import matplotlib.pyplot as plt
import threading
import time
def plot_a_graph():
f,a = plt.subplots(1)
line = plt.plot(range(10))
plt.show()
print "plotted graph"
time.sleep(4)
testthread = threading.Thread(target=plot_a_graph)
plot_a_graph() # this works fine, displays the graph and waits
print "that took some time"
testthread.start() # Thread starts, window is opened but no graph appears
print "already there"
THX您的幫助
貴公司的所有繪圖的主線程上。至少在QT中,如果您嘗試這樣做,gui不會喜歡它。 – tacaswell