Trazar en línea o una ventana separada usando Matplotlib en Spyder IDE

Cuando uso Matplotlib para trazar algunos gráficos, generalmente está bien para el dibujo en línea predeterminado. Sin embargo, cuando dibujo algunos gráficos en 3D, me gustaría tenerlos en una ventana separada para que se puedan habilitar interacciones como la rotación. ¿Puedo configurar en el código Python qué figura mostrar en línea y cuál mostrar en una nueva ventana?

Sé que en Spyder, haga clic en Herramientas, Preferencias, Consola de Ipython, Gráficos y en el Backend de Gráficos seleccione “automático” en lugar de “en línea”. Sin embargo, esto hace que todas las figuras estén en ventanas nuevas. Puede ser desordenado cuando tengo muchas ttwigs. Así que solo quiero que esas gráficas 3D estén en ventanas nuevas, pero todas las otras gráficas 2D permanecen en línea. ¿Es posible en absoluto?

¡Gracias!

tipo

%matplotlib qt 

cuando quieras gráficos en una ventana separada y

 %matplotlib inline 

cuando quieres una ttwig en línea

Vaya a Herramientas >> Preferencias >> Consola IPython >> Gráficos >> Backend: Inline, cambie “Inline” a “Automatic”, haga clic en “OK”

Reinicie el kernel en la consola, y la ttwig aparecerá en una ventana separada

Comandos mágicos como

 %matplotlib qt 

funciona en la consola de iPython y en Notebook, pero no funciona dentro de un script.

En ese caso, después de importar:

 from IPython import get_ipython 

utilizar:

 get_ipython().run_line_magic('matplotlib', 'inline') 

para el trazado en línea del siguiente código, y

 get_ipython().run_line_magic('matplotlib', 'qt') 

Para graficar en una ventana externa.

Edición: la solución anterior no siempre funciona, según el problema de Anaconda de su versión de sistema operativo / Spyder en GitHub . Configurar el Backend de Gráficos en Automático (como se indica en otra respuesta: Herramientas >> Preferencias >> Consola IPython >> Gráficos -> Automático) resuelve el problema por mí.

Luego, después de un reinicio de la consola, se puede cambiar entre las ventanas de trazado Inline y External mediante el comando get_ipython (), sin tener que reiniciar la consola.