ipython notebook --pylab en línea: zoom de un gráfico

82

¿Es posible hacer zoom en un gráfico si está activado en línea? Especialmente con respecto a los gráficos 3D, la rotación y el zoom es una característica necesaria.

varantir
fuente

Respuestas:

90

¡Ahora, gracias a mpld3 , es muy fácil habilitar el zoom en gráficos en línea!

Todo lo que tiene que hacer es instalar mpld3 ( pip install mpld3) y luego agregar esto a su computadora portátil:

%matplotlib inline
import mpld3
mpld3.enable_notebook()

Ahora sus gráficos obtendrán un menú de barra de herramientas en la parte inferior izquierda, en el que puede habilitar el zoom del mouse :)

yonilevy
fuente
Parece que los gráficos 3D aún no son compatibles: github.com/jakevdp/mpld3/issues/223
Théo T
3
Esto es genial, pero se debe agregar que con algunas de las parcelas de trabajo más pesado (parcelas que contienen millones de puntos, por ejemplo), es muy lento.
2
Implementé esto en mi Jupyter Notebook 4.2.2 y al hacer zoom, la figura se quedó en blanco. Agregar origin = 'lower' como argumento a la llamada imshow () lo solucionó. (por ejemplo, imshow (res, origin = 'lower', cmap = cm.gray))
DanGoodrick
6
No me funciona. Estoy recibiendoJson serialization error
Gulzar
95

Ahora puede usar en %matplotlib notebooklugar de %matplotlib inliney podrá interactuar con sus parcelas.

João Abrantes
fuente
1
Esta es una gran solución. Si lo prueba y no funciona, verifique su versión de matplotlib. Creo que esto se introdujo en la versión 1.5
jpobst
No funciona tan bien como esperaba con las subtramas; puede hacer zoom y desplazarse por una subtrama individual, pero no puede aumentar / disminuir el tamaño de toda la imagen de la parcela. Lo cual, para ser justos, no fue la pregunta original que se hizo anteriormente.
ijoseph
1
@ijoseph también puede aumentar el tamaño de toda la imagen. Simplemente arrastre la esquina inferior derecha del gráfico.
João Abrantes
4
Es posible que deba reiniciar su computadora portátil si ya llamó a% matplotlib en línea
Guido
3
Recibo el error "Error de Javascript: IPython no está definido"
Ben
10

En la actualidad, lo más cerca que puede llegar es volver a dibujarlo en un tamaño más grande usando la figsizefunción. Espera dimensiones en pulgadas, lo que me sorprendió la primera vez que intenté usarlo.

Hay algunas plantas para un backend rico que permitiría manipular gráficos en vivo, usando HTML5, pero creo que pasarán unos meses más antes de que esté listo.

Si está usando la computadora portátil en su computadora local, por ahora, la opción más fácil podría ser no usar el modo en línea, por lo que los gráficos aparecerán como ventanas separadas.

Thomas K
fuente
1
Sí, lo es, con una versión reciente de matplotlib, ahora puede seleccionar el backend nbagg.
Thomas K
9

mpld3 ralentizó la ejecución de mis cuadernos. Me pareció mejor usar el backend nbagg que proporciona las mismas herramientas interactivas pero también permite guardar gráficos mediante el menú del botón derecho:

import matplotlib
matplotlib.use('nbagg')
import matplotlib.pyplot as plt
Víctor Bettachini
fuente
2
Honestamente, creo que esta es la mejor respuesta, se ve mucho mejor que mpld3 y más funciones.
bznein
5

Otro buen ejemplo que ha surgido recientemente es subcontratar el trabajo para trazar:

https://plot.ly/python/3d-plots-tutorial/

¡Deje que ellos se encarguen de la renderización, la panorámica y el zoom por usted!

Andrew Mao
fuente