一、標題背景
當我們使用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/zh-hant/n/189861.html