¿Cómo puedo abrir la ventana Matplotlib interactiva en IPython notebook?
Estoy usando IPython con inline pylab=inline y a veces me gustaría cambiar rápidamente a la interfaz gráfica de usuario Matplotlib interactiva y ampliable para ver gráficas (la que aparece cuando se dibuja algo en una consola Python terminal). ¿Cómo podría hacer eso? Preferiblemente sin salir o reiniciar mi cuaderno.
El problema con los gráficos en línea en IPY notebook es que son de una resolución limitada y no puedo hacer zoom en ellos para ver algunas partes más pequeñas. Con la GUI Maptlotlib que comienza desde un terminal Puedo seleccionar un rectángulo del gráfico que quiero acercar y los ejes se ajustan en consecuencia. He intentado experimentar con
from matplotlib import interactive
interactive(True)
Y
interactive(False)
Pero eso no hizo nada. No pude encontrar ninguna pista en línea tampoco.
6 answers
De acuerdo con la documentación , usted debe ser capaz de cambiar hacia adelante y hacia atrás de esta manera:
In [2]: %matplotlib inline
In [3]: plot(...)
In [4]: %matplotlib qt # wx, gtk, osx, tk, empty uses default
In [5]: plot(...)
Y que aparecerá una ventana de trazado normal (un reinicio en el cuaderno puede ser necesario).
Espero que esto ayude.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-25 20:07:22
Si todo lo que desea hacer es cambiar de gráficos en línea a interactivos y viceversa (para que pueda desplazarse/hacer zoom), es mejor usar %matplotlib magic.
#interactive plotting in separate window
%matplotlib qt
Y volver a html
#normal charts inside notebooks
%matplotlib inline
%pylab magic importa un montón de otras cosas e incluso puede resultar en un conflicto. Hace " from pylab import*".
También puede usar el nuevo backend de notebook (agregado en matplotlib 1.4):
#interactive charts inside notebooks, matplotlib 1.4+
%matplotlib notebook
Si desea tener más interactividad en sus gráficos, puede mirar mpld3 y bokeh. mpld3 es genial, si no tiene toneladas de puntos de datos (por ejemplo,
También puede comprobar hacia fuera pivottablejs (pip instalar pivottablejs)
from pivottablejs import pivot_ui
pivot_ui(df)
Por genial que sea la exploración interactiva de datos, puede interferir totalmente con la reproducibilidad. Me ha pasado a mí, así que intente usarlo solo en la etapa muy temprana y cambie a matplotlib/seaborn en línea pura, una vez que tenga la idea de los datos.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-04 15:07:19
Comenzando con matplotlib 1.4.0 ahora hay un backend interactivo para usar en el notebook
%matplotlib notebook
Hay algunas versiones de IPython que no tienen ese alias registrado, la alternativa es:
%matplotlib nbagg
Si eso no funciona actualizar IPython.
Para jugar con esto, goto tmpnb.org
Y pegar
%matplotlib notebook
import pandas as pd
import numpy as np
import matplotlib
from matplotlib import pyplot as plt
import seaborn as sns
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts = ts.cumsum()
df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index,
columns=['A', 'B', 'C', 'D'])
df = df.cumsum()
df.plot(); plt.legend(loc='best')
En una celda de código (o simplemente modifique el cuaderno de demostración de python existente)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-10 15:31:57
Una mejor solución para su problema podría ser la biblioteca de gráficos . Le permite usar la excelente biblioteca de javascript Highcharts para crear gráficas hermosas e interactivas. Highcharts usa la etiqueta HTML svg
por lo que todos sus gráficos son en realidad imágenes vectoriales.
Algunas características:
- Gráficos vectoriales que puede descargar en .png, .jpg y .formatos svg para que nunca se encuentre con problemas de resolución
- Gráficos interactivos (zoom, diapositiva, pasar el cursor sobre punto, ...)
- Utilizable en un cuaderno IPython
- Explore cientos de estructuras de datos al mismo tiempo utilizando las capacidades de trazado asíncrono.
Descargo de responsabilidad: Soy el desarrollador de la biblioteca
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-22 13:00:38
Estoy usando ipython en "jupyter QTConsole" de Anaconda en www.continuum.io/downloads el 28/5/20117.
Aquí hay un ejemplo para ir y venir entre una ventana separada y un modo de trazado en línea usando ipython magic.
>>> import matplotlib.pyplot as plt
# data to plot
>>> x1 = [x for x in range(20)]
# Show in separate window
>>> %matplotlib
>>> plt.plot(x1)
>>> plt.close()
# Show in console window
>>> %matplotlib inline
>>> plt.plot(x1)
>>> plt.close()
# Show in separate window
>>> %matplotlib
>>> plt.plot(x1)
>>> plt.close()
# Show in console window
>>> %matplotlib inline
>>> plt.plot(x1)
>>> plt.close()
# Note: the %matplotlib magic above causes:
# plt.plot(...)
# to implicitly include a:
# plt.show()
# after the command.
#
# (Not sure how to turn off this behavior
# so that it matches behavior without using %matplotlib magic...)
# but its ok for interactive work...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-28 15:43:43
Reinicie el kernel y borre la salida (si no comienza con un nuevo notebook), luego ejecute
%matplotlib tk
Para más información vaya a Trazado con matplotlib
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-19 18:18:29