我已经环顾了一会儿,发现了一些从绘图中删除内容的巧妙方法。
e.g。 lines = blah,del lines [0],line gone。
但这显然不适用于直方图,或者例如imshow。
有没有办法清除绘图区域(即不使用clf())而不必重新生成整个图形。这要求您对当前绘制的内容没有严格的了解,但仍然可以将其删除。我正在开发一个使用相同区域进行绘图的应用程序,我想要一种通用的方法来删除我想要显示的不同类型图形的内容。一些线,一些分散,一些组织等。
感谢。
答案 0 :(得分:1)
您可以在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()