Ответ 1
figure.suptitle
возвращает экземпляр matplotlib.text.Text
. Вы можете сохранить его и установить новый заголовок:
txt = fig.suptitle('A test title')
txt.set_text('A better title')
plt.draw()
Я пытаюсь использовать suptitle
для печати заголовка, и я хочу, чтобы эта замена была заменена соответствующим образом. В настоящее время я использую:
self.ui.canvas1.figure.suptitle(title)
где фигура - фигура 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()
Возобновить этот старый поток, потому что я недавно столкнулся с этим. Существует ссылка на объект Text, возвращенный исходной настройкой suptitle в figure.texts. Вы можете использовать это, чтобы изменить оригинал, пока это не будет зафиксировано в 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, он исправит это за вас.