python - real - matplotlib
Cómo hacer un gráfico de IPplonlib para notebook IPython en línea (10)
Estoy tratando de usar el portátil 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 la línea de comando ipython --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:
<matplotlib.figure.Figure at 0x110b9c450>
Y matplotlib.get_backend()
muestra que tengo el backend ''module://IPython.kernel.zmq.pylab.backend_inline''
.
En Ubuntu puede eliminar %matplotlib inline
siempre que tenga plt.show()
después de la creación del gráfico.
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 Perez (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á tramando
Comienza a trazar cuando hice esto
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
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. Usa el% pylab magic.
Para hacer matplotlib en línea de forma predeterminada en Jupyter (IPython 3):
Edite el archivo
~/.ipython/profile_default/ipython_config.py
Agregar 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
Puede simular este problema con un error de sintaxis, sin embargo, %matplotlib inline
no resolverá el problema.
Primero un ejemplo de la forma correcta de crear una trama. Todo funciona como se espera con las importaciones y la magia que proporciona .
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:
<bound method FramePlotMethods.kde of <pandas.tools.plotting.FramePlotMethods object at 0x000001DDAF029588>>
Aparte de este mensaje de una línea, no hay rastro de pila u otra razón obvia para pensar que cometió un error de sintaxis. La trama no se imprime.
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.
%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=<CaselessStrEnum>
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.