Cómo hacer un gráfico de IPplonlib del cuaderno de IPython en línea

Estoy tratando de usar la notebook IPython en MacOS X con Python 2.7.2 e IPython 1.1.0.

No puedo obtener gráficos de matplotlib para aparecer en línea.

import matplotlib import numpy as np import matplotlib.pyplot as plt %matplotlib inline 

También probé %pylab inline y los argumentos de línea de comando de --pylab=inline pero esto no hace ninguna diferencia.

 x = np.linspace(0, 3*np.pi, 500) plt.plot(x, np.sin(x**2)) plt.title('A simple chirp') plt.show() 

En lugar de gráficos en línea, obtengo esto:

  

Y matplotlib.get_backend() muestra que tengo el backend 'module://IPython.kernel.zmq.pylab.backend_inline' .

%matplotlib inline en %matplotlib inline en la primera celda del cuaderno y funciona. Creo que deberías intentar:

 %matplotlib inline import matplotlib import numpy as np import matplotlib.pyplot as plt 

También puede iniciar todos los kernels de su IPython en modo en línea de manera predeterminada configurando las siguientes opciones de configuración en sus archivos de configuración:

 c.IPKernelApp.matplotlib= Default: None Choices: ['auto', 'gtk', 'gtk3', 'inline', 'nbagg', 'notebook', 'osx', 'qt', 'qt4', 'qt5', 'tk', 'wx'] Configure matplotlib for interactive use with the default matplotlib backend. 

Si su versión matplotlib está por encima de 1.4, también es posible usar

IPython 3.xy superior

 %matplotlib notebook import matplotlib.pyplot as plt 

versiones anteriores

 %matplotlib nbagg import matplotlib.pyplot as plt 

Ambos activarán el backend nbagg , que permite la interactividad.

Ejemplo de trama con el backend nbagg

Ctrl + Enter

 %matplotlib inline 

Línea mágica: D

Ver: Plotting con Matplotlib .

No estoy seguro de por qué Joaquín publicó su respuesta como un comentario, pero es la respuesta correcta:

inicia ipython con ipython notebook --pylab inline

Edición: Ok, esto ahora está en desuso según el comentario a continuación. Use el comando %pylab inline magic.

Para hacer matplotlib en línea de forma predeterminada en Jupyter (IPython 3):

  1. Edite el archivo ~/.ipython/profile_default/ipython_config.py

  2. Agregue la línea c.InteractiveShellApp.matplotlib = 'inline'

Tenga en cuenta que agregar esta línea a ipython_notebook_config.py no funcionará. De lo contrario, funciona bien con Jupyter e IPython 3.1.0

Estoy de acuerdo con foobarbecue (no tengo suficientes respuestas para poder simplemente insertar un comentario en su publicación):

Ahora se recomienda que el cuaderno de Python no se inicie con el argumento --pylab , y de acuerdo con Fernando Pérez (creador de ipythonnb) %matplotlib inline debe ser el comando del cuaderno inicial.

Consulte aquí: http://nbviewer.ipython.org/github/ipython/ipython/blob/1.x/examples/notebooks/Part%203%20-%20Plotting%20with%20Matplotlib.ipynb

He encontrado una solución que es bastante satisfactoria. Instalé Anaconda Python y esto ahora funciona fuera de la caja para mí.

Hice la instalación de anaconda, pero matplotlib no está ttwigndo

Empieza a trazar cuando hice esto.

 import matplotlib import numpy as np import matplotlib.pyplot as plt %matplotlib inline 

En Ubuntu puede eliminar %matplotlib inline siempre que tenga plt.show() después de la creación del gráfico.

Puede simular este problema con un error de syntax, sin embargo, %matplotlib inline no resolverá el problema.

Primero, un ejemplo de la forma correcta de crear una ttwig. Todo funciona como se espera con las importaciones y la magia que proporciona eNord9 .

 df_randNumbers1 = pd.DataFrame(np.random.randint(0,100,size=(100, 6)), columns=list('ABCDEF')) df_randNumbers1.ix[:,["A","B"]].plot.kde() 

Sin embargo, al dejar el () fuera del final del tipo de gráfico, recibe un error no ambiguo.

Código Errónico:

 df_randNumbers1.ix[:,["A","B"]].plot.kde 

Ejemplo de error:

 > 

Aparte de este mensaje de una línea, no hay rastro de stack u otra razón obvia para pensar que cometió un error de syntax. La ttwig no se imprime.