如何使用Python删除绘图?

如何使用Python删除绘图?,python,numpy,matplotlib,Python,Numpy,Matplotlib,我有一些用Python绘制的数据,但现在我想删除这些绘图,而不是图形本身 我有这样的事情: import numpy as np import pylab as plt a = np.array([1,2,3,4,5,6,7,8,9,10]) b = np.array([1,2,3,4,5,6,7,8,9,10]) c = plt.plot(a,b,'r.') 为了澄清这一点,我尝试了以下方法: a = np.array([]) b = np.array([]) c = plt.plot(a

我有一些用Python绘制的数据,但现在我想删除这些绘图,而不是图形本身

我有这样的事情:

import numpy as np
import pylab as plt

a = np.array([1,2,3,4,5,6,7,8,9,10])
b = np.array([1,2,3,4,5,6,7,8,9,10])
c = plt.plot(a,b,'r.')
为了澄清这一点,我尝试了以下方法:

a = np.array([])
b = np.array([])
c = plt.plot(a,b,'r.')
但它不起作用。实现这一点的最佳方法是什么?

您可以使用返回的plot对象的方法。这适用于从
Artist
继承的任何打印对象

c = plt.plot(a,b,'r.')

for handle in c:
    handle.remove()
从这里开始:

plt.cla()清除轴,即当前处于活动状态的轴 当前图形。它使其他轴保持不变

clf()清除整个当前图形及其所有轴,但 使窗口保持打开状态,以便可以将其重新用于其他绘图

plt.close()关闭一个窗口,如果不是,它将是当前窗口 另有规定

此外,如果您喜欢逐行执行,即使您丢失了原始引用,也可以像这样删除它们:

for l in ax.get_lines():
    xval = l.get_xdata()[0]
    if (xval == my_criteria):
        l.remove()
或者简单地说:

for l in ax.get_lines():
            l.remove()

同样,您可以通过y值进行相同的索引。

要使轴具有与a、b数组相同的值,您可以执行以下操作:

import matplotlib.pyplot as plt
plt.clf() # To clear the figure.
plt.axis([1,10,1,10])

可能存在的副本