Mi trama en ipython no se muestra con pyplot.show()

3 minutos de lectura

Avatar de usuario de Baskaya
Báskaya

Ayuda requerida para mostrar matplotlib parcelas en ipython. no me olvidé de llamar pyplot.show().

$ipython –pylab

import matplotlib.pyplot as plt
plt.plot(range(20), range(20))

Vuelve matplotlib.lines.Line2D at 0xade2b2c como salida.

plt.show()

No pasa nada. Ningún mensaje de error. Sin ventana nueva. lo instalé matplotlib con pipy no se produjeron mensajes de error.

Detalles:

Yo suelo,

  • ubuntu
  • IPython v0.11
  • Pitón v2.6.6
  • matplotlib v1.0.1

  • pylab está muerto. ¿Cuál es la forma recomendada de trazar: matplotlib o pylab?. Ignorar las respuestas con pylab.

    –Trenton McKinney

    8 abr a las 18:53

avatar de usuario de unutbu
unutbu

Si configuro mi backend para template en ~/.matplotlib/matplotlibrcentonces puedo reproducir sus síntomas:

~/.matplotlib/matplotlibrc:

# backend      : GtkAgg
backend      : template

Tenga en cuenta que el archivo matplotlibrc puede que no esté en el directorio ~/.matplotlib/. En este caso, el siguiente código muestra dónde está:

>>> import matplotlib
>>> matplotlib.matplotlib_fname()

In [1]: import matplotlib.pyplot as p

In [2]: p.plot(range(20),range(20))
Out[2]: [<matplotlib.lines.Line2D object at 0xa64932c>]

In [3]: p.show()

si editas ~/.matplotlib/matplotlibrc y cambiar el backend a algo como GtkAgg, deberías ver una trama. Puede enumerar todos los backends disponibles en su máquina con

import matplotlib.rcsetup as rcsetup
print(rcsetup.all_backends)

Debería devolver una lista como:

['GTK', 'GTKAgg', 'GTKCairo', 'FltkAgg', 'MacOSX', 'QtAgg', 'Qt4Agg',
'TkAgg', 'WX', 'WXAgg', 'CocoaAgg', 'agg', 'cairo', 'emf', 'gdk', 'pdf',
'ps', 'svg', 'template']

Referencia:

Avatar de usuario de Christopher Lee
cristobal lee

Me encontré exactamente con el mismo problema en Ubuntu 12.04, porque instalé matplotlib (dentro de un virtualenv) usando

pip install matplotlib

Para resumir, mi consejo es: no intente instalar matplotlib usando pip oa mano; deje que un administrador de paquetes real (por ejemplo, apt-get / synaptic) lo instale y todas sus dependencias por usted.

Desafortunadamente, los backends de matplotlib (métodos alternativos para renderizar sus gráficos) tienen todo tipo de dependencias que pip no manejará. Peor aún, falla en silencio; eso es, pip install matplotlib parece instalar matplotlib con éxito. Pero cuando intentas usarlo (por ejemplo, pyplot.show()), no aparecerá ninguna ventana de trazado. Probé todos los diferentes backends que sugiere la gente en la web (Qt4Agg, GTK, etc.), y todos fallaron (es decir, cuando traté de importar matplotlib.pyplot, obtengo ImportError porque está tratando de importar alguna dependencia que falta). Luego investigué cómo instalar esas dependencias, pero me hizo querer dejar de usar pip (dentro de virtualenv) como una solución de instalación viable para cualquier paquete que no tenga dependencias de paquetes de Python.

Toda la experiencia me envió a apt-get / synaptic (es decir, el administrador de paquetes de Ubuntu) para instalar software como matplotlib. Eso funcionó perfectamente. Por supuesto, eso significa que solo puede instalar en los directorios de su sistema, sin la bondad de virtualenv, y está atascado con las versiones que distribuye Ubuntu, que pueden estar muy por detrás de la versión actual…

avatar de usuario de grampus
orca

Agregar %matplotlib inline una vez al cuaderno, antes de trazar.

avatar de usuario de tnuts
nueces

Sólo tipo:

plt.ion()

Ver https://www.youtube.com/watch?v=1zmV8lZsHF4 a las 23:30!

plt se utiliza debido a mi importación: import matplotlib.pyplot como plt

Estoy usando python2.7 en una Mac con iTerm2.

Para futura referencia,

Me encontré con el mismo problema: pylab no se mostraba en ipython. El problema se solucionó cambiando el archivo de configuración de ipython {ipython_config.py}. En el archivo de configuración

c.InteractiveShellApp.pylab = 'auto'

Cambié ‘auto’ a ‘qt’ y ahora veo gráficos

Avatar de usuario de Bhanu Pratap Singh
Bhanu Pratap Singh

Lo que resolvió mi problema fue simplemente usar las dos líneas a continuación en el cuaderno de ipython en la parte superior

%matplotib inline
%pylab inline

Y funcionó. Estoy usando Ubuntu16.04 e ipython-5.1

Avatar de usuario de Tunaki
Tunaki

Agregar las siguientes dos líneas antes de importar pylab parece funcionar para mí

import matplotlib
matplotlib.use("gtk")

import sys
import pylab
import numpy as np

¿Ha sido útil esta solución?