"Advertencia de usuario: Matplotlib actualmente usa agg, que es un backend sin GUI, por lo que no puede mostrar la figura". al trazar una figura con pyplot en Pycharm

Resuelto johnwolf1987 asked hace 5 años • 31 respuestas

Estoy intentando trazar un gráfico simple usando pyplot, por ejemplo:

import matplotlib.pyplot as plt
plt.plot([1,2,3],[5,7,4])
plt.show()

pero no aparece la figura y me sale el siguiente mensaje:

UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.

Encontré y probé algunos consejos para reconfigurar el "backend" mencionado en esa advertencia, así:

import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt

pero esto me da un mensaje de error:

ModuleNotFoundError: No module named 'tkinter'

Supuse que tenía que instalar este módulo por separado, pero pip install tkinterno funciona:

Collecting tkinter
  Could not find a version that satisfies the requirement tkinter (from versions: )
No matching distribution found for tkinter

¿Cómo puedo hacer que Matplotlib muestre el gráfico?


Ver también : ¿ Por qué parece que tkinter (o tortuga) falta o está roto? ¿No debería ser parte de la biblioteca estándar? . Esta pregunta no está duplicada, porque las respuestas analizan otros backends además del de Tkinter.

Consulte también _tkinter.TclError: sin nombre para mostrar ni variable de entorno $DISPLAY para problemas con los intentos de utilizar Matplotlib de forma remota.

johnwolf1987 avatar Jun 19 '19 03:06 johnwolf1987
Aceptado

Solución 1: es instalar el backend de la GUItk

Encontré una solución a mi problema (gracias a la ayuda de ImportanceOfBeingErnest ).

Todo lo que tuve que hacer fue instalar tkintera través de la terminal bash de Linux usando el siguiente comando:

sudo apt-get install python3-tk

en lugar de instalarlo con pipo directamente en el entorno virtual en Pycharm.

Solución 2: instale cualquiera de los matplotlibbackends GUI compatibles

  • La solución 1 funciona bien porque obtienes un backend GUI... en este caso elTkAgg
  • sin embargo, también puede solucionar el problema instalando cualquiera de los backends GUI de matplolib como Qt5Agg,,, etc. GTKAggQt4Agg
    • por ejemplo, pip install pyqt5también solucionará el problema

NOTA:

  • Por lo general, este error aparece cuando instala matplotlib con pip y está intentando mostrar un gráfico en una ventana GUI y no tiene un módulo de Python para mostrar la GUI.
  • Los autores de matplotlibhicieron que los departamentos de software pypi no dependieran de ningún backend de GUI porque algunas personas lo necesitan matplotlib sin ningún backend de GUI.
johnwolf1987 avatar Jun 19 '2019 20:06 johnwolf1987

En mi caso, el mensaje de error implicaba que estaba trabajando en una consola sin cabeza. Entonces plt.show()no pudo funcionar. Lo que funcionó fue llamar plt.savefig:

import matplotlib.pyplot as plt

plt.plot([1, 2, 3], [5, 7, 4])
plt.savefig("mygraph.png")

Encontré la respuesta en un repositorio de github .

vvvvv avatar Oct 01 '2019 09:10 vvvvv

Si usa Arch Linux (distribuciones como Manjaroo Antegros) simplemente escriba:

sudo pacman -S tk

¡Y todo funcionará perfectamente!

dexXxed avatar Dec 05 '2019 18:12 dexXxed

Instalación sencilla

pip3 install PyQt5==5.9.2

Esto funciona para mi.

Manish Gupta avatar Jun 29 '2020 05:06 Manish Gupta