Matplotlib - 如何删除特定的线或曲线

Jom*_*mme 11 python matplotlib line

我想删除多行图中的特定行.贝娄是一个给定的例子,对我来说是不够的,因为它只删除了最后绘制的线而不是我想要删除的线.我怎样才能做到这一点?如何在整个程序中找到特定行(按名称,按编号,按引用)并删除该行?

self.axes.lines.remove(self.axes.lines[0])
Run Code Online (Sandbox Code Playgroud)

tac*_*ell 23

几乎所有的绘图函数都返回对artistex创建的对象的引用:

ln, = plot(x, y)  # plot actually returns a list of artists, hence the ,
im = imshow(Z)
Run Code Online (Sandbox Code Playgroud)

如果您有参考,您可以通过remove (doc)函数ex 删除艺术家:

ln.remove()
im.remove()
Run Code Online (Sandbox Code Playgroud)


Fra*_*ano 12

如果您不想显式保存所有行的引用,但是您知道要删除的行的索引,则可以使用maptplotlib为您存储它们的事实.

self.axes.lines
Run Code Online (Sandbox Code Playgroud)

是一个列表matplotlib.lines.Line2D.所以要删除,例如,你可以做的第二条线

self.axes.lines[1].remove()
Run Code Online (Sandbox Code Playgroud)

  • 我强烈反对这种用法。它依赖于一些_应该_是 Matplotlib 内部细节的事情,如果你做两次就不会做正确的事情。 (3认同)