python - matrices - la trama animada matplotlib no actualiza las etiquetas en el eje usando blit
graficar matrices en python (1)
Parece que las etiquetas están dibujadas pero el comando blit no las copia al lienzo porque el cuadro delimitador solo incluye la parte interna de los ejes.
Para mí, el cambio de update_line.background = canvas.copy_from_bbox(ax.bbox)
a update_line.background = canvas.copy_from_bbox(ax.get_figure().bbox)
y canvas.blit(ax.bbox)
a canvas.blit(ax.clipbox)
lo hizo funcionar.
Estoy trazando datos en un diagrama usando wxPython donde los límites de datos en el eje y están cambiando con los datos. Me gustaría cambiar el eje dinámicamente sin volver a dibujar todo el lienzo como canvas.draw()
sino que me gustaría utilizar blitting
para esto como lo hago para la trama en sí.
Lo que tengo que trabajar es el cambiante eje Y, y hago que los yticks se animen con la trama, desafortunadamente las etiquetas desaparecieron y no puedo encontrar la solución. El motivo es establecer la configuración get_yaxis().set_animated(True)
para el eje.
Puse un pequeño ejemplo de trabajo en lo siguiente. ¿Que me estoy perdiendo aqui?
import matplotlib
matplotlib.use(''WXAgg'')
import wx
import pylab as p
import numpy as npy
from time import sleep
ax = p.subplot(111)
canvas = ax.figure.canvas
x = npy.arange(0,2*npy.pi,0.01)
line, = p.plot(x, npy.sin(x), animated=True)
ax.get_yaxis().set_animated(True)
def update_line(*args):
if update_line.background is None:
update_line.background = canvas.copy_from_bbox(ax.bbox)
for i in range(20):
canvas.restore_region(update_line.background)
line.set_ydata((i/10.0)*npy.sin(x))
ax.set_ylim(-1*i/5.0-0.5,i/5.0+0.5)
ax.draw_artist(ax.get_yaxis())
ax.draw_artist(line)
canvas.blit(ax.bbox)
sleep(0.1)
print ''end''
update_line.cnt = 0
update_line.background = None
wx.EVT_IDLE(wx.GetApp(), update_line)
p.show()
Básicamente, estoy buscando algo como get_ylabels().set_animated(True)
pero no puedo encontrarlo.