我正在尝试使用suptitle
来打印标题,我希望以某种方式取代此标题。目前我正在使用:
self.ui.canvas1.figure.suptitle(title)
其中figure是matplotlib图(canvas1是mplCanvas,但这不相关),title是python字符串。
目前,这是有效的,除了我稍后再次运行此代码时,它只是在旧的顶部打印新文本,导致一个装饰,不可读的标题。
如何替换数字的旧suptitle
,而不仅仅是打印?
谢谢,
泰勒
答案 0 :(得分:17)
figure.suptitle
会返回matplotlib.text.Text
个实例。您可以保存它并设置新标题:
txt = fig.suptitle('A test title')
txt.set_text('A better title')
plt.draw()
答案 1 :(得分:8)
恢复这个旧线程,因为我最近碰到了这个。有一个对image.texts中suptitle原始设置返回的Text对象的引用。您可以使用它来更改原件,直到在matplotlib中修复它。
答案 2 :(得分:0)
我有类似的问题。 图形对象显示标题超过旧标题(先前创建)的方法。这绝对是matplotlib中的错误。尤其是您可以在fig.py(matplotlib软件包的一部分)中找到以下代码:
(...)
sup = self.text(x, y, t, **kwargs)
if self._suptitle is not None:
self._suptitle.set_text(t)
self._suptitle.set_position((x, y))
self._suptitle.update_from(sup)
else:
self._suptitle = sup
return self._suptitle
幸运的是,此错误存在于matplotlib 1.2.1版中,但后来得到了修复(在2.2.4版中不再存在)。尝试更新matplotlib,它将为您修复。