一、标题背景
当我们使用matplotlib绘制图表时,通常需要清空画布,以免前一次绘制的内容影响下一次的绘制结果。因此,清空画布是matplotlib基本操作之一。而plt.clf()函数就是实现这一功能的常用函数,它可以清空当前图形中的所有axes。
二、使用plt.clf函数清空当前画布
在绘制图表时,我们通常会先创建一个画布,然后在画布上创建一个或多个子图(axes)。使用plt.clf()函数可以清空当前图形的所有axes。
示例代码
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 2 * np.pi, 100) y = np.sin(x) fig, ax = plt.subplots() ax.plot(x, y) ax.set_title('Sine Wave') # 清空当前图形的所有axes plt.clf() # 继续绘制 ax.plot(x, np.cos(x)) ax.set_title('Cosine Wave') plt.show()
运行上述代码,可以看到两个不同的图形,一个是正弦波,一个是余弦波。这两个图形的axes是在同一个画布上绘制的。在绘制正弦波之后,使用plt.clf()清空了当前的axes,然后再绘制了余弦波。
三、使用plt.close()函数关闭当前画布
除了使用plt.clf()函数清空当前图形的所有axes以外,我们还可以使用plt.close()函数关闭当前的画布。该函数在清空当前的axes之后,还会将画图窗口关闭。
示例代码
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 2 * np.pi, 100) y = np.sin(x) fig, ax = plt.subplots() ax.plot(x, y) ax.set_title('Sine Wave') # 关闭当前画布 plt.close() # 继续绘制 fig, ax = plt.subplots() ax.plot(x, np.cos(x)) ax.set_title('Cosine Wave') plt.show()
运行上述代码,可以看到两个不同的画布,分别绘制了正弦波和余弦波。
四、使用plt.cla()函数清空当前axes
使用plt.clf()函数可以清空当前图形的所有axes,但是有时候我们只想清空当前axes上的内容,而不是清空整个图形。这时,就可以使用plt.cla()函数清空当前的axes。
示例代码
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 2 * np.pi, 100) y = np.sin(x) fig, ax = plt.subplots() ax.plot(x, y) ax.set_title('Sine Wave') # 清空当前axes plt.cla() # 继续绘制 ax.plot(x, np.cos(x)) ax.set_title('Cosine Wave') plt.show()
运行上述代码,可以看到两个不同的图形,一个是空白的axes,一个是余弦波。在绘制正弦波之后,使用plt.cla()清空了当前的axes,然后再绘制了余弦波。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/189861.html