错误:在matplotlib中使用clf()时未定义的名称

时间:2017-09-02 13:56:59

标签: python matplotlib figure

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()

我想用图表制作一个图形,然后在特定时间后删除该图形。但是当我尝试它时,我得到错误:在我要删除图形的最后一行的未定义名称。

1 个答案:

答案 0 :(得分: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()