python - matplotlib no muestra mis dibujos aunque yo llamo a pyplot.show()
subplot title python (13)
Necesito tu ayuda sobre matplotlib. Sí, no me olvidé de llamar a la pyplot.show ().
$ ipython --pylab
import matplotlib.pyplot as p
p.plot(range(20), range(20))
Devuelve matplotlib.lines.Line2D at 0xade2b2c
como resultado.
p.show()
No hay nada que pase Sin mensaje de error No hay una nueva ventana Nada. matplotlib
usando pip y no tomé ningún mensaje de error.
Detalles:
Yo suelo,
- Ubuntu
- IPython v0.11
- Python v2.6.6
- matplotlib v1.0.1
% matplotlib en línea
Para mí, trabajar con una computadora portátil, agregar la línea anterior antes de que la trama funcione.
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
Al igual que @Rikki, resolví este problema actualizando matplotlib
con pip install matplotlib --upgrade
. Si no puede actualizar la desinstalación y la reinstalación, puede funcionar.
pip uninstall matplotlib
pip install matplotlib
Asegúrese de tener habilitada esta secuencia de comandos de inicio: (Preferencias> Consola> Opciones avanzadas)
/usr/lib/python2.7/dist-packages/spyderlib/scientific_startup.py
Si está habilitado el PYTHONSTARTUP estándar, no tendrá un diagrama interactivo
Después de ejecutar su código incluya:
import pylab as p
p.show()
Lo que resolvió mi problema fue simplemente usar las dos líneas siguientes en el cuaderno ipython en la parte superior
%matplotib inline
%pylab inline
Y funcionó. Estoy usando Ubuntu16.04 e ipython-5.1
Me encontré con exactamente el mismo problema en Ubuntu 12.04, porque instalé matplotlib (dentro de un virtualenv) usando
pip install matplotlib
Para resumir, mi consejo es: no intentes instalar matplotlib usando pip o manualmente; deje que un administrador de paquetes real (por ejemplo, apt-get / synaptic) lo instale y todas sus dependencias por usted.
Desafortunadamente, los back-ends de matplotlib (métodos alternativos para representar realmente tus tramas) tienen todo tipo de dependencias que el pip no manejará. Peor aún, falla silenciosamente; es decir, la pip install matplotlib
parece instalar matplotlib con éxito. Pero cuando intenta usarlo (por ejemplo, pyplot.show()
), no aparecerá ninguna ventana de diagrama. Probé todos los back-end diferentes que las personas en la web sugieren (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 dio ganas de dejar de usar pip (dentro de virtualenv) como una solución de instalación viable para cualquier paquete que tenga dependencias de paquetes que no sean de Python.
Toda la experiencia me envió arrastrándome de vuelta a apt-get / synaptic (es decir, el administrador de paquetes de Ubuntu) para instalar un software como matplotlib. Eso funcionó perfectamente. Por supuesto, eso significa que solo puede instalar en los directorios de su sistema, sin virtualenv bondad, y está atascado con las versiones que Ubuntu distribuye, que puede estar muy por detrás de la versión actual ...
Para Ubuntu 12.04:
sudo apt-get install python-qt4
virtualenv .env --no-site-packages
source .env/bin/activate
easy_install -U distribute
ln -s /usr/lib/python2.7/dist-packages/PyQt4 .
ln -s /usr/lib/python2.7/dist-packages/sip.so .
pip install matplotlib
Para futura referencia,
He encontrado el mismo problema: pylab no se mostraba en ipython. El problema se solucionó al cambiar 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
Para mí, el problema ocurre si simplemente creo un archivo matplotlibrc
vacío bajo ~/.matplotlib
en macOS. Agregar "backend: macosx" en él soluciona el problema.
Creo que es un error: si backend
no está especificado en mi matplotlibrc
, debería tomar el valor predeterminado.
Sólo tipo:
plt.ion()
¡Vea https://www.youtube.com/watch?v=1zmV8lZsHF4 a las 23:30!
plt
se usa debido a mi importación: import matplotlib.pyplot
as plt
Estoy usando python2.7 en una Mac con iTerm2.
Si configuro mi backend a la template
en ~/.matplotlib/matplotlibrc
, entonces puedo reproducir sus síntomas:
~ / .matplotlib / matplotlibrc:
# backend : GtkAgg
backend : template
Tenga en cuenta que el archivo matplotlibrc
puede no estar 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 edita ~/.matplotlib/matplotlibrc
y cambia el backend a algo como GtkAgg
, debería ver un diagrama. 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:
Tuve que instalar matplotlib desde la fuente para que esto funcione. Las instrucciones clave (de http://www.pyimagesearch.com/2015/08/24/resolved-matplotlib-figures-not-showing-up-or-displaying/ ) son:
$ workon plotting
$ pip uninstall matplotlib
$ git clone https://github.com/matplotlib/matplotlib.git
$ cd matplotlib
$ python setup.py install
Al cambiar el backend, como dice @unutbu, me encontré con muchos más problemas con los diferentes backends que tampoco funcionaban.