2014-09-23 75 views
6

我可以在matplotlib中制作文本框。但我没有看到如何从渲染的阴谋中删除它们?绘制文本框后,似乎没有figure.text.clear()或figure.text(visible = False)?这是如何完成的?和传说不同,你似乎无法让它们拖曳?如何清除以前绘制的Matplotlib文本框?

+0

'figure.text.remove()'? – 101 2014-09-23 21:40:14

回答

11

文本框是艺术家。因此,如果你保留对它们的引用,你应该可以用它们做很多事情。因此,在任何绘图代码,而不是

fig.text(0, 0, 'My text') 

,你可以做

textvar = fig.text(0, 0, 'My text') 

如果你已经失去了参考,不过,所有的文本对象可以在texts属性中找到:

fig.texts # is a list of Text objects 

在版本1.3.1中,做textvar.remove()生成一个NotImplementedError(显然固定在1.4)。但是,您可以通过将可见性设置为False来在某种程度上解决此问题。

for txt in fig.texts: 
    txt.set_visible(False) 

将使您的所有文本框消失。

+0

你是否因为1.4而出现这个错误?我可以发誓,我们修正了...... – tacaswell 2014-09-24 03:29:16

+0

作品像一个魅力 - ty – 2014-09-24 03:32:10

+0

@tcaswell我没有想到检查最新版本,这是与1.3.1。真棒,它固定在1.4! – Ajean 2014-09-24 03:38:02