python用matplotlib绘图时,曲线或散点怎么删除?

 我来答
山炮小二黑
推荐于2019-08-03 · TA获得超过357个赞
知道小有建树答主
回答量:328
采纳率:100%
帮助的人:180万
展开全部
在matplotlib中,每一个对象(图标,轴等)都提供了各种方法来获取其属性或者之类对象。
如,最大的Artist容器是matplotlib.figure.Figure,它包括组成图表的所有元素。图表的背景是一个Rectangle对象,用Figure.patch属性表示。当你通过调用add_subplot或者add_axes方法往图表中添加轴(子图时),这些子图都将添加到Figure.axes属性中,同时这两个方法也返回添加进axes属性的对象,注意返回值的类型有所不同,实际上AxesSubplot是Axes的子类。

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
然后我们添加一条“Line”到这个“axes”中去
lines = ax.plot(np.arange(1000))

此时,你可以运行fig.show()查看到图表对象中已经多了一条线

当然,你也可以吧lines对象的位置打印出来,我这里是:
[<matplotlib.lines.Line2D object at 0x05D37BD0>]

OK,可能这个时候你已经知道如何做了,通过查询API我们知道是有一个POP方法的,那么你可能会这么写:
lines.pop(0)
然后你会再次运行程序,你会发现画的先仍然存在,为什么呢?
好吧,其实这个地方你可以理解为是一个值传递,而非引用删除,那么正确的方法是:
ax.lines.pop(0)

你同样可以这样,传递一个地址过去
ax.lines.remove(lines[0])

你大概可能通过这些方法进行删除
lines.pop(0)
lines.remove()
del lines

回答完毕。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式