1

我环顾四周,发现了许多从情节中删除内容的巧妙方法。

例如 lines = blah, del lines[0], line 消失了。

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

有没有办法清除绘图区域(即不使用 clf())而不必重新生成整个图形。这要求您对当前绘制的内容没有严格的了解,但仍然能够将其删除。我正在开发一个使用相同区域进行绘图的应用程序,我想要一种通用方法来删除我想要显示的不同类型图形的内容。一些线条,一些分散,一些组织等。

谢谢。

4

1 回答 1

1

您可以在 an 上显示的所有内容axes都是 的子类Artist并具有成员函数remove (doc)。所有绘图函数(应该)返回它们添加到轴的artist(或列表)。artists前任:

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()

您可以获得给定的所有艺术家的axes列表

artist_list = ax.get_children()

如果要从轴上删除所有内容,

ax.cla()

于 2013-02-13T23:50:35.230 回答