Matplotlib suptitle打印旧标题

时间:2012-05-11 21:54:38

标签: python matplotlib

我正在尝试使用suptitle来打印标题,我希望以某种方式取代此标题。目前我正在使用:

self.ui.canvas1.figure.suptitle(title)

其中figure是matplotlib图(canvas1是mplCanvas,但这不相关),title是python字符串。

目前,这是有效的,除了我稍后再次运行此代码时,它只是在旧的顶部打印新文本,导致一个装饰,不可读的标题。

如何替换数字的旧suptitle,而不仅仅是打印?

谢谢,

泰勒

3 个答案:

答案 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,它将为您修复。