import sys
import matplotlib
import matplotlib.pyplot as plt
print matplotlib.__version__, matplotlib.get_backend()
def hit(event):
sys.stderr.write('hit\n')
fig = plt.figure()
cid0 = fig.canvas.mpl_connect('key_press_event', hit)
cid1 = fig.canvas.mpl_connect('button_press_event', hit)
print cid0, cid1
plt.show()
Con el código anterior, ¿por qué no puedo tener eventos de pulsación de mouse y eventos de pulsación de teclas presionando hit? Parece que en el orden de arriba solo funcionan los eventos de pulsación de tecla, mientras que si cambio las líneas 10 y 11 (orden cid0 y asignación cid1), entonces solo funcionan los eventos del mouse. Es decir. El que yo conecte primero encierra el controlador de eventos. ¿Es esto una limitación incorporada de matplotlib, o estoy intentando conectar múltiples eventos de forma incorrecta?matplotlib conexiones múltiples a un controlador de eventos?
editar con más información: Mi matplotlib.__version__
es . He intentado con los backends GTKAgg
y TkAgg
con el mismo resultado. El uso de python e ipython, con o sin -wthread -pylab
, ipython qtconsole --pylab=inline
, no hace la diferencia. Los ID de conexión que obtengo son cid0 == cid1 == 6
.
edición 2: Mi problema sigue siendo hoy en día con la versión matplotlib 1.2.x
y TkAgg
backend, sys.version 2.7.2+ (default, Oct 4 2011, 20:06:09) [GCC 4.6.1]
Su código funciona bien para mí. Lo he intentado con "ipython -pylab" seguido de "ejecutar yourcode" y "python yourcode.py" - aplausos. Creo que estoy usando el backend de GTK, pero no estoy seguro. ¿Bajo qué condiciones estás corriendo? –
interesante. ¿podría decirme su 'sys.version',' matplotlib.backends.backend' y su 'matplotlib .__ version__'? – wim
mina son ''2.7.1+ (r271: 86832, 11 de abril de 2011, 18:13:53) \ n [GCC 4.5.2]' ','' GTKAgg'', y ''1.1.0'', respectivamente, por cierto. – wim