¿Cómo puedo obtener gráficos interactivos nuevamente en Spyder / IPython / matplotlib?

Actualicé de Python (x, y) 2.7.2.3 a 2.7.6.0 en Windows 7 (y me alegró ver que finalmente puedo escribir function_name? Y ver la cadena de documentos en el Inspector de objetos de nuevo) pero ahora el trazado no funciona como solia hacerlo

Anteriormente (Spyder 2.1.9, IPython 0.10.2, matplotlib 1.2.1), cuando graficaba este script , por ejemplo, trazaba los subplots de lado a lado en una ventana interactiva:

introduzca la descripción de la imagen aquí

Ahora (Spyder 2.2.5, IPython 1.2.0, Matplotlib 1.3.1) cuando bash trazar las cosas, hace los subplots como pequeños PNG en línea, lo que es un cambio en IPython :

pequeños PNG en línea

Así que entré en opciones y encontré esto:

opciones gráficas

lo que parece decir que puedo recuperar las antiguas plots interactivas, con las 4 subplots mostradas una al lado de la otra, pero cuando cambio a “Automático”, e bash trazar algo, no hace nada. No hay plots en absoluto.

Si cambio este menú desplegable a Qt, o desmarco “Activar soporte”, solo traza el primer argumento secundario, o parte de él, y luego se detiene:

introduzca la descripción de la imagen aquí

¿Cómo puedo obtener el antiguo comportamiento de 4 subplots de lado a lado en una sola figura con la que puedo interactuar?

Related of "¿Cómo puedo obtener gráficos interactivos nuevamente en Spyder / IPython / matplotlib?"

Cambie el backend a automático:

Herramientas> Preferencias> Consola IPython> Gráficos> Backend de gráficos> Backend: Automático

Luego cierra y abre Spyder.

Puede controlarlo rápidamente escribiendo comandos mágicos incorporados en la consola IPython de Spyder, que encuentro más rápido que al seleccionarlos en el menú de preferencias. Los cambios surten efecto de inmediato, sin necesidad de reiniciar Spyder o el kernel.

Para cambiar a gráficos “automáticos” (es decir, interactivos), escriba:

 %matplotlib auto 

luego, si desea volver a “en línea”, escriba esto:

 %matplotlib inline 

(Nota: estos comandos no funcionan en consolas que no sean IPython)

Como se dijo en los comentarios, el problema radica en su script. En realidad, hay 2 problemas:

  • Hay un error matplotlib, supongo que está pasando un argumento como None algún lugar. Tal vez debido al defaultdict?
  • Llamas a show() después de cada subttwig. show() debe llamarse una vez al final de su script. La alternativa es usar el modo interactivo, buscar información en la documentación de matplotlib.

Después de aplicar: Herramientas> Preferencias> Gráficos> Backend> Automático Simplemente reinicie el kernel introduzca la descripción de la imagen aquí

Y seguramente obtendrás Parcela Interactiva. ¡Feliz encoding!