我正在尝试使用suptitle打印标题,并且我想偶尔替换此标题。目前我正在使用:
self.ui.canvas1.figure.suptitle(title)
其中 figure 是 matplotlib 图(canvas1 是 mplCanvas,但这不相关),并且 title 是 python 字符串。
目前,这可行,除了当我稍后再次运行此代码时,它只是将新文本打印在旧文本之上,导致标题混乱、不可读。
你如何替换旧suptitle的图形,而不仅仅是打印出来?
谢谢,
泰勒
我正在尝试使用suptitle打印标题,并且我想偶尔替换此标题。目前我正在使用:
self.ui.canvas1.figure.suptitle(title)
其中 figure 是 matplotlib 图(canvas1 是 mplCanvas,但这不相关),并且 title 是 python 字符串。
目前,这可行,除了当我稍后再次运行此代码时,它只是将新文本打印在旧文本之上,导致标题混乱、不可读。
你如何替换旧suptitle的图形,而不仅仅是打印出来?
谢谢,
泰勒
figure.suptitle返回一个matplotlib.text.Text实例。您可以保存它并设置新标题:
txt = fig.suptitle('A test title')
txt.set_text('A better title')
plt.draw()
复活这个旧线程,因为我最近遇到了这个问题。在 figure.texts 中有一个对 suptitle 的原始设置返回的 Text 对象的引用。您可以使用它来更改原始文件,直到在 matplotlib 中修复它。
我有类似的问题。图形对象的替代方法显示旧标题(以前创建)的标题。这绝对是 matplotlib 中的一个错误。特别是您可以在 figure.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,它会为您修复它。