如何清除之前绘制的 Matplotlib 文本框?

新手上路,请多包涵

我可以在 matplotlib 很好。但我看不到如何从渲染图中删除它们?画个文本框后好像没有 figure.text.clear() 或者 figure.text(visible=False) ?这是怎么做到的?与传说不同,您似乎无法使它们可拖动?

原文由 Tim Carnahan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

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

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)

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

原文由 Ajean 发布,翻译遵循 CC BY-SA 3.0 许可协议

  1. 使用 fig.textsax.texts 打印其中存在的所有标题的列表 fig/axes
  2. 使用 del python 关键字删除特定的 text

考虑以下示例:

 print(fig.texts)

输出:

 [Text(-0.3, 5, 'Features data distribution'),
 Text(-0.3, 4.5, 'Secondary title')]

假设您必须删除“副标题”

 del fig.texts[1]
print(fig.texts)

输出:

 [Text(-0.3, 5, 'Features data distribution')]

在图中,该标题将被删除。

原文由 user41855 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题