如何使用Python删除绘图?

时间:2017-03-22 15:10:13

标签: 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,b,'r.')

但它不起作用。实现这一目标的最佳方法是什么?

3 个答案:

答案 0 :(得分:0)

您可以使用返回的绘图对象的remove方法。对于继承自Artist任何绘图对象,情况都是如此。

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

for handle in c:
    handle.remove()

答案 1 :(得分:0)

从这里开始:

When to use cla(), clf() or close() for clearing a plot in matplotlib?

  

plt.cla()清除一个轴,即当前活动的轴   目前的数字。它使其他轴保持不变。

     

plt.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值进行相同的索引。

答案 2 :(得分:0)

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

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

enter image description here