“UserWarning: Matplotlib actualmente está usando agg, que es un backend que no es GUI, por lo que no puede mostrar la figura”. al trazar la figura con pyplot en Pycharm

4 minutos de lectura

Estoy tratando de 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 me 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.

Vi en varios lugares que uno tenía que cambiar la configuración de matplotlib usando lo siguiente:

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

Hice esto, pero luego recibí un mensaje de error porque no puede encontrar un módulo:

ModuleNotFoundError: No module named 'tkinter'

Luego, traté de instalar “tkinter” usando pip install tkinter (dentro del entorno virtual), pero no lo encuentra:

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

También debo mencionar que estoy ejecutando todo esto en Pycharm Community Edition IDE usando un entorno virtual, y que mi sistema operativo es Linux/Ubuntu 18.04.

Me gustaria saber como puedo solucionar este problema para poder visualizar la grafica.

  • Olvídate del gráfico por un momento. Tu problema es instalar tkinter. ¿Probó alguna de las soluciones disponibles para eso, por ejemplo, stackoverflow.com/questions/4783810/install-tkinter-for-python?

    – La Importancia De Ser Ernesto

    18 de junio de 2019 a las 20:47

  • ¿Realmente estás usando tkinter para algo, o simplemente lo elegiste como backend de plt?

    – G.Anderson

    18 de junio de 2019 a las 20:53

  • @ImportanceOfBeingErnest: Gracias por la pista. De hecho, me centraré en instalar tkinter primero. Voy a echar un vistazo al enlace que proporcionaste y ver si puedo sacar algo de él.

    – johnwolf1987

    19 de junio de 2019 a las 20:17

  • @G.Anderson: no tenía idea de qué era tkinter antes de encontrarme con este error con matplotlib. Ahora estoy tratando de instalarlo solo para poder mostrar gráficos (así que sí, supongo que lo elegí como backend de plt). Si conoce alguna otra forma (es decir, sin usar tkinter), me encantaría escucharla.

    – johnwolf1987

    19 de junio de 2019 a las 20:19

  • @G.Anderson: Ejecuté el script para recorrer los diferentes backends. ¡Resulta que solo TkAgg está disponible! De hecho, lo acababa de instalar antes de probar el script.

    – johnwolf1987

    19 de junio de 2019 a las 20:41

avatar de usuario
Vinzee

En mi caso, el mensaje de error implicaba que estaba trabajando en una consola sin periféricos. Asi que plt.show() no podía trabajar 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.

  • Realmente no resuelve el problema subyacente, pero en mi caso esta es la solución preferida ya que es mejor guardar la imagen en lugar de mostrarla, y este suele ser el caso.

    – arame3333

    13 de marzo de 2021 a las 19:11

  • Tengo miedo de decir que esta es como la tercera vez que termino aquí. Quizás al comentarlo, tengo una mejor oportunidad de recordar el “truco” la próxima vez que intente esto nuevamente…

    – logicOnAbstracciones

    15 de diciembre de 2021 a las 22:16

avatar de usuario
Manish Gupta

Instalación sencilla

pip3 install PyQt5==5.9.2

Esto funciona para mi.

  • ¡Sí, funciona! Lo instalé dentro de mi entorno virtual a través de la terminal de PyCharm.

    – WhaSukGO

    24 de agosto de 2020 a las 5:51

  • Ejecuto “pip3 install PyQt5” sin especificar el número de versión.

    – oráculo

    26 de agosto de 2020 a las 18:23

  • Esta es la única respuesta que resolvió mi problema.

    – Albert G Lieu

    23 de marzo de 2021 a las 0:36

  • No sé cómo esto no está aprobado. Solo este metodo funciono

    – Shubham Pawar

    22 de mayo de 2021 a las 2:28

avatar de usuario
zby

Probar import tkinter porque pycharm ya instaló tkinter para usted, busqué Instalar tkinter para Python

Tal vez puedas intentar:

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

como una forma de instalación de tkinter

Lo intenté a tu manera, parece que no hay ningún error al ejecutarlo en mi computadora, muestra correctamente la figura. tal vez porque pycharm tiene tkinter como un paquete de sistema, por lo que no necesita instalarlo. Pero si no puede encontrar tkinter adentro, puede ir a Tkdocs para ver la forma de instalar tkinter, como menciona, tkinter es un paquete core para python.

  • ¡Sí, funciona! Lo instalé dentro de mi entorno virtual a través de la terminal de PyCharm.

    – WhaSukGO

    24 de agosto de 2020 a las 5:51

  • Ejecuto “pip3 install PyQt5” sin especificar el número de versión.

    – oráculo

    26 de agosto de 2020 a las 18:23

  • Esta es la única respuesta que resolvió mi problema.

    – Albert G Lieu

    23 de marzo de 2021 a las 0:36

  • No sé cómo esto no está aprobado. Solo este metodo funciono

    – Shubham Pawar

    22 de mayo de 2021 a las 2:28

avatar de usuario
Vinzee

La respuesta se ha dado varias veces pero no es obvia, uno necesita instalar gráficos, esto funciona.

pip3 install PyQt5

  • Esto funcionó cuando se ejecutaba un binario de python a través de Bazel. +1

    – Gearoide Murphy

    9 ago 2021 a las 18:56

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad