python matplotlib

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.



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: