Я знаю, что эта тема часто всплывает, но после многих попыток, поисков и отказов я возвращаю ее вам.
У меня есть класс, который содержит фигуру matplotlib. На этом рисунке мне нужен текст, и когда пользователь нажимает какую-либо клавишу, текст обновляется до чего-то, без рисования всего тяжелого на оси. Похоже, мне нужно кого-то здесь забить, но как? Вот рабочий пример, лучшее, что я мог получить до сих пор.
import matplotlib as mpl
mpl.use('TkAgg')
import matplotlib.pyplot as plt
import numpy as np
class textUpdater:
def __init__(self):
self.fig, self.ax = plt.subplots()
# self.text = plt.figtext(.02, .14, 'Blibli')
self.text = self.ax.text(0, .5, 'Blabla')#, transform = self.ax.transAxes)#, animated=True)
self.fig.canvas.mpl_connect('key_press_event', self.action)
self.fig.canvas.draw()
plt.show()
def action(self, event):
if event.key == 'z':
self.text.set_text('Blooooo')
self.ax.draw_artist(self.text)
self.fig.canvas.blit(self.text.get_window_extent())
textUpdater()
Первый вопрос: при блитинге позади появляется предыдущий текст. Я хочу, чтобы это исчезло!
И второе: я бы вообще-то предпочел, чтобы это был фиговый текст, вне всяких осей. Звучит ли это осуществимо?
Вы лучшие, спасибо большое.