이 항목은 자주 터지지 만 많은 시도와 검색 및 포기 후에 필자는 다시 가져 오려고합니다.Python matplotlib blit 및 텍스트 업데이트
나는 matplotlib 그림이 포함 된 클래스가 있습니다. 이 그림에서는 텍스트가 필요하며 사용자가 일부 키를 누르면 텍스트가 무언가로 업데이트되고 축에 모든 무거운 것을 그려 넣지 않습니다. 내가 누군가를 여기에서 blit 할 필요가있는 것처럼 보입니다. 그러나 어떻게? 여기에 실제 예제가 있습니다. 지금까지 얻을 수있는 최선의 방법입니다.
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()
첫 번째 질문 : 물건을 번쩍 내릴 때 이전 텍스트가 뒤에 표시됩니다. 나는 그것을 사라지고 싶다!
두 번째 : 저는 사실 모든 축에서 무화과 텍스트로 사용하는 것을 선호합니다. 그것은 실현 가능하다고 생각하니?
귀하는 최고입니다. 고맙습니다.
감사합니다. Tim! 어떤 이유로 나는 mpl.animation에서 멀어져 야한다고 생각했지만, 완벽했다. 나는 이것을 Figure.text에 적용하려고 노력할 것이다. 다시 한번 감사드립니다. – Etienne
나는이 문제를 지원하지 않는다는 [bug report] (https://github.com/matplotlib/matplotlib/issues/6965)를 matplotlib에 제출했다. 곧 패치를 제출 하겠지만, 그때까지 [ArtistAnimation._init_draw] (https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/animation.py#L1200)를 다시 정의하면됩니다.) 메소드는'artist.axes.figure' 대신'artist.get_figure()'를 사용합니다. –