Si fijo mi backend para templateen ~/.matplotlib/matplotlibrc, entonces puedo reproducir sus síntomas:
~ / .matplotlib / matplotlibrc:
# backend : GtkAgg
backend : template
Tenga en cuenta que el archivo matplotlibrcpuede 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/matplotlibrcy 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 matplotlibparece 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, obtuveImportErrorporque 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-packagesopción?pip installestáagg. No estoy seguro de por qué, pero puedes cambiarlo según la respuesta del unutbu.piptiene la gran ventaja de instalar una versión actualizada:aptinstala una versión desactualizada. A veces hay correcciones de errores / nuevas características que desea / necesita.virtualenvfuncionó! 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 inlineen 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 inlineva 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!
pltse utiliza debido a mi importación:import matplotlib.pyplotcomo 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 inlinehace 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
matplotlibconpip 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~/.matplotlibCreo que es un error: si
backendno 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