Si fijo mi backend para 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 así 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:
ImportError: No module named _backend_gdk
~/.config/matplotlib/matplotlibrc
(para Python 3, al menos). Acabo de tener un problema relacionado, y creo que fue causado por usar matplotlib en python 2.7, que creó un~/.matplotlib/
directorio, y evitó que python 3 leyera la configuración~/.config/matplotlib/
. La eliminación~/.matplotlib/
solucionó el problema para mí.Me encontré exactamente con el mismo problema en Ubuntu 12.04, porque instalé matplotlib (dentro de un virtualenv) usando
Para resumir, mi consejo es: no intente 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 backends de matplotlib (métodos alternativos para renderizar sus trazados) tienen todo tipo de dependencias que pip no resolverá. Peor aún, falla en silencio; es decir,
pip install matplotlib
parece instalar matplotlib con éxito. Pero cuando intente usarlo (por ejemplopyplot.show()
), no aparecerá una ventana de trazado. Probé todos los backends diferentes que sugieren las personas en la web (Qt4Agg, GTK, etc.), y todos fallaron (es decir, cuando traté de importar matplotlib.pyplot, obtuveImportError
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 tenga dependencias de paquetes que no sean Python.Toda la experiencia me envió a rastreo de 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 virtudes, y está atrapado con las versiones que distribuye Ubuntu, que pueden estar muy por detrás de la versión actual ...
fuente
--system-site-packages
opción?pip install
estáagg
. No estoy seguro de por qué, pero puedes cambiarlo según la respuesta del unutbu.pip
tiene la gran ventaja de instalar una versión actualizada:apt
instala una versión desactualizada. A veces hay correcciones de errores / nuevas características que desea / necesita.virtualenv
funcionó! Y pude instalar matplotlib 1.4 desde la fuente de todo el sistema (en Ubuntu), pero no debajovirtualenv
.% matplotlib en línea
Para mí, trabajando con el cuaderno, agregando la línea anterior antes de que la trama funcione.
fuente
%pylab inline
en mi cuaderno como lo señaló @Bhanu Pratap SinghPara futura referencia,
He encontrado 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
fuente
agg
, no lo sé lo que%pylab inline
va a funcionar, ni lo parcelas mostrar al ejecutar secuencias de comandos directamente, es decir:python myscript.py
. La respuesta de unutbu debería solucionarlo en todas partes.Sólo tipo:
plt.ion()
¡Mira https://www.youtube.com/watch?v=1zmV8lZsHF4 a las 23:30!
plt
se utiliza debido a mi importación:import matplotlib.pyplot
como pltEstoy usando python2.7 en una mac con iTerm2.
fuente
Lo que resolvió mi problema fue usar las dos líneas siguientes en el cuaderno de ipython en la parte superior
Y funcionó. Estoy usando Ubuntu16.04 e ipython-5.1
fuente
%pylab inline
hace que funcione.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:
Al cambiar el backend, como dice @unutbu, me encontré con muchos más problemas con los diferentes backends que tampoco funcionan.
fuente
Agregar las siguientes dos líneas antes de importar pylab parece funcionar para mí
fuente
Asegúrese de tener esta secuencia de comandos de inicio habilitada: (Preferencias> Consola> Opciones avanzadas)
Si el PYTHONSTARTUP estándar está habilitado, no tendrá un diagrama interactivo
fuente
Similar a @Rikki, resolví este problema actualizando
matplotlib
conpip install matplotlib --upgrade
. Si no puede actualizar, la desinstalación y reinstalación pueden funcionar.fuente
Para mí, el problema ocurre si simplemente creo un archivo vacío en macOS. Agregar "backend: macosx" soluciona el problema.
matplotlibrc
~/.matplotlib
Creo que es un error: si
backend
no se especifica en mimatplotlibrc
, debería tomar el valor predeterminado.fuente
Después de ejecutar su código, incluya:
fuente
Encontré que necesitaba
window = Tk()
y luegowindow.mainloop()
fuente
Para Ubuntu 12.04:
fuente