2017-09-02 62 views
0
import time 
import matplotlib.pyplot as plt 

xvalues = [1,2,3,4,5,6,7,8,9] 
yvalues = [1,3,5,9,8,7,8,5,6] 
plt.xlabel('time in hours') 
plt.ylabel('ph') 
plt.plot([xvalues],[yvalues], 'ro') 
plt.axis ([0,10,0,15]) 
plt.show() 
time.sleep(1) 
clf() 

我想和情節的人物,然後刪除特定時間後的數字。但是,當我嘗試它時,我得到了錯誤:我想刪除數字的最後一行的未定義名稱。錯誤:未定義的名字,當我使用CLF()在matplotlib

回答

1

關於錯誤:clf()未定義,您可能想用plt.clf()代替。

但是,plt.clf()不會刪除該數字。它只會清除這個數字。您可能想要閱讀 When to use cla(), clf() or close() for clearing a plot in matplotlib?

不幸的是,從問題中不能完全清楚代碼的預期行爲。如果將其作爲腳本運行,數字窗口將保持打開狀態,直到您手動關閉它;只有在plt.show()之後的任何代碼纔會被執行。那麼使用time.sleep()就沒有任何意義,並且刪除該圖是不必要的,因爲腳本隨後停止,清除內存。

如果您希望以交互模式運行(plt.ion()),則可以使用plt.pause(1)來暫停1秒,然後關閉該圖。

import matplotlib.pyplot as plt 

plt.ion() 

xvalues = [1,2,3,4,5,6,7,8,9] 
yvalues = [1,3,5,9,8,7,8,5,6] 
plt.xlabel('time in hours') 
plt.ylabel('ph') 
plt.plot([xvalues],[yvalues], 'ro') 
plt.axis ([0,10,0,15]) 
plt.show() 

plt.pause(1) 
plt.close()