Python 如何删除matplotlib的常规内容,而不考虑打印的类型

Python 如何删除matplotlib的常规内容,而不考虑打印的类型,python,matplotlib,Python,Matplotlib,我环顾四周一段时间,发现了许多从情节中删除内容的聪明方法 e、 g.线条=废话,删除线条[0],线条消失 但这显然不适用于直方图,例如imshow 是否有一种方法可以在不重新生成整个图形的情况下清除打印区域(即不使用clf())。这要求您对当前打印的内容没有严格的了解,但仍然能够将其删除。我正在开发一个应用程序,它使用相同的区域进行绘图,我希望有一种通用的方法来删除我要显示的不同类型图形的内容。一些线条,一些散乱,一些历史等等 谢谢。您可以在轴上显示的所有内容都是Artist的子类,并具有成员函

我环顾四周一段时间,发现了许多从情节中删除内容的聪明方法

e、 g.线条=废话,删除线条[0],线条消失

但这显然不适用于直方图,例如imshow

是否有一种方法可以在不重新生成整个图形的情况下清除打印区域(即不使用clf())。这要求您对当前打印的内容没有严格的了解,但仍然能够将其删除。我正在开发一个应用程序,它使用相同的区域进行绘图,我希望有一种通用的方法来删除我要显示的不同类型图形的内容。一些线条,一些散乱,一些历史等等


谢谢。

您可以在
轴上显示的所有内容
都是
Artist
的子类,并具有成员函数
删除
。所有绘图功能(应)返回它们添加到轴中的
美工人员
(或
美工人员
)列表。例:

ln, = ax.plot(...) # adds a line
img = ax.imshow( ) # adds an image
ln.remove()        # removes the line
img.remove()       # removes the image
在更改可见之前,您必须重新绘制画布(
plt.draw()
ax.figure.canvas.draw()

您可以使用获得给定
轴中所有艺术家的列表

artist_list = ax.get_children()
如果要删除轴上的所有对象


ax.cla()

可以在
轴上显示的所有内容
都是
Artist
的子类,并具有成员函数
remove
。所有绘图功能(应)返回它们添加到轴中的
美工人员
(或
美工人员
)列表。例:

ln, = ax.plot(...) # adds a line
img = ax.imshow( ) # adds an image
ln.remove()        # removes the line
img.remove()       # removes the image
在更改可见之前,您必须重新绘制画布(
plt.draw()
ax.figure.canvas.draw()

您可以使用获得给定
轴中所有艺术家的列表

artist_list = ax.get_children()
如果要删除轴上的所有对象


ax.cla()

这对于一组绘制的点很好,但是如果img=blah在循环中-如何删除循环中以前绘制的点?self.displaypoints[0]。remove()只删除最近绘制的点,而不是所有点。@Griff您只需保留引用(比如在列表中)。好的,谢谢,但我如何一次将孩子们带走?>Artister\u list=self.main.display.get\u children()>Artister\u list.remove()似乎不起作用。@Griff请参见编辑。您只需迭代列表元素。这对于一组打印的点很好,但如果img=blah在循环中-如何删除以前在循环中打印的点?self.displaypoints[0]。remove()只删除最近打印的点,而不是所有点。@Griff您只需保留引用即可(在列表中说)。好的,谢谢,但是如何一次删除子项?>artist\u list=self.main.display.get\u children()>artist\u list.remove()似乎不起作用。@Griff请参见编辑。您只需迭代列表元素即可。