Esto también se puede configurar en el archivo de configuración matplotlibrc
(como se explica en el mensaje de error), por ejemplo:
# The default backend; one of GTK GTKAgg GTKCairo GTK3Agg GTK3Cairo
# CocoaAgg MacOSX Qt4Agg Qt5Agg TkAgg WX WXAgg Agg Cairo GDK PS PDF SVG
backend : Agg
De esa forma, no es necesario codificar el backend si el código se comparte con otras personas. Para obtener más información, consulte la documentación.
Su backend seleccionado actualmente, 'agg' no es compatible con show().
AGG
backend es para escribir en un archivo, no para renderizar en una ventana. Consulte las preguntas frecuentes sobre backend en el sitio web de matplotlib.
ImportError:ningún módulo llamado _backend_gdk
Para el segundo error, tal vez su distribución matplotlib no esté compilada con soporte GTK, o pierda el paquete PyGTK. Intenta instalarlo.
¿Llamas al show()
método dentro de una terminal o aplicación que tiene acceso a un entorno gráfico?
Pruebe otros backends de GUI, en este orden:
TkAgg
wxAgg
Qt5Agg
Qt4Agg
FYI, descubrí que necesitaba poner matplotlib.use('Agg')
primero en el orden de importación de Python. Para lo que estaba haciendo (las pruebas unitarias debían ser descentralizadas), eso significaba poner
import matplotlib
matplotlib.use('Agg')
en la parte superior de mi script de prueba maestro. No tuve que tocar ningún otro archivo.