usuario504909
Soy nuevo usuario de matplotlib, mi plataforma es Ubuntu 10.04 Python 2.6.5
este es mi codigo
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
plt.plot([1,2,3])
el error es:
/usr/local/lib/python2.6/dist-packages/matplotlib/backends/__init__.py:41: UserWarning:
Your currently selected backend, 'agg' does not support show().
Please select a GUI backend in your matplotlibrc file ('/usr/local/lib/python2.6/dist-packages/matplotlib/mpl-data/matplotlibrc')
or with matplotlib.use()
(backend, matplotlib.matplotlib_fname()))
- Instalé la biblioteca Anti-Grain Geometry
apt-get install libagg
pero no funciona. - Traté de usar otro argumento de backend como ‘GTK’ y ‘TkAgg’.
- lo instalé
python-gtk2-dev
paquete, pero aún así el error está debajo. - ¿Alguien puede decirme un argumento de back-end ejecutable y su biblioteca de dependencia?
Aquí está el error:
>>> matplotlib.use('GTK')
>>> import matplotlib.pyplot as plt
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.6/dist-packages/matplotlib/pyplot.py", line 95, in <module>
new_figure_manager, draw_if_interactive, show = pylab_setup()
File "/usr/local/lib/python2.6/dist-packages/matplotlib/backends/__init__.py", line 25, in pylab_setup
globals(),locals(),[backend_name])
File "/usr/local/lib/python2.6/dist-packages/matplotlib/backends/backend_gtk.py", line 28, in <module>
from matplotlib.backends.backend_gdk import RendererGDK, FigureCanvasGDK
File "/usr/local/lib/python2.6/dist-packages/matplotlib/backends/backend_gdk.py", line 29, in <module>
from matplotlib.backends._backend_gdk import pixbuf_get_pixels_array
ImportError: No module named _backend_gdk
andrea spadaccini
Su backend actualmente seleccionado, ‘agg’ no es compatible con show().
AGG
backend es para escribir en un archivo, no para renderizar en una ventana. Ver el Preguntas frecuentes sobre back-end en el sitio web 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 con otra GUI backendsen este orden:
TkAgg
wxAgg
Qt5Agg
Qt4Agg
-
muchas gracias, el personal equivocado que hice fue configurar matplotlib antes de obtener PyGTK
– usuario504909
9 de febrero de 2011 a las 3:40
-
como comentario adicional, probaría QTAgg en último lugar, ya que apunta a QT3 y probablemente quedará obsoleto a mediano plazo.
– tacoswell
2 mayo 2013 a las 19:34
-
¿Por qué dice específicamente ‘en este orden’ cuando indica usar otros backends de GUI? ¿Cuáles son las diferencias entre las opciones de backend?
– SamC
3 de junio de 2022 a las 12:06
-
‘Qt5Agg’ funcionó para mí (python 3.8)
– YosefBro
22 de junio de 2022 a las 9:50
-
Dependiendo de su sistema operativo, es posible que primero deba instalar las bibliotecas apropiadas para los backends (por ejemplo,
tk
en arch linux para TkAgg).– Scriddie
10 de enero a las 13:09
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 tenían que ser sin cabeza) 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.
-
Debo hacer lo mismo que me preocupa mucho. ¿Ha encontrado alguna vez otra solución elegante?
– QM.py
10 de diciembre de 2017 a las 13:41
-
Y descubrí que es importante que esté en lo más alto (no después de otras importaciones). +1.
– Ryan
8 de agosto de 2018 a las 3:13
-
Sí, esto tiene que ser absolutamente lo primero que haga antes de cualquier otra importación de matplotlib.
– Jake Cowton
7 oct 2018 a las 12:24
Esto también se puede establecer 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 el documentación.
Los errores que publicaste no están relacionados. El primero se debe a que seleccionaste un backend que no está diseñado para uso interactivo, es decir, agg. Todavía puede usar (y debe usar) aquellos para la generación de gráficos en scripts que no requieren interacción del usuario.
Si desea un entorno de laboratorio interactivo, como en Matlab/Pylab, obviamente importaría un backend compatible con el uso de interfaz gráfica de usuario, como Qt4Agg (necesita Qt y AGG), GTKAgg (GTK y AGG) o WXAgg (wxWidgets y Agg).
Comenzaría tratando de usar WXAgg, aparte de eso, realmente depende de cómo instaló Python y matplotlib (fuente, paquete, etc.)
Antes de iniciar python, puedes hacerlo en bash
export MPLBACKEND=TkAgg
Gimotear
También puede intentar ver el gráfico en un navegador.
Usa lo siguiente:
matplotlib.use('WebAgg')
Anurag Reddy
Para los recién llegados,
matplotlib.pyplot.switch_backend(newbackend)