Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

539
Views
"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

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, intenté 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.

over 4 years ago · Santiago Trujillo
33 answers
Answer question

0

Intente 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 central para python.

over 4 years ago · Santiago Trujillo Report

0

Solución 1: es instalar el backend GUI tk

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

Todo lo que tenía que hacer era instalar tkinter a través de la terminal bash de Linux usando el siguiente comando:

 sudo apt-get install python3-tk

en lugar de instalarlo con pip o directamente en el entorno virtual en Pycharm.

Solución 2: instale cualquiera de los backends de GUI compatibles matplotlib

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

NOTA:

  • por lo general, este error aparece cuando pip instala matplotlib y está tratando de mostrar un gráfico en una ventana de GUI y no tiene un módulo de python para la visualización de GUI.
  • Los autores de matplotlib hicieron que los departamentos de software de pypi no dependieran de ningún backend de GUI porque algunas personas necesitan matplotlib sin ningún backend de GUI.
over 4 years ago · Santiago Trujillo Report

0

En mi caso, el mensaje de error implicaba que estaba trabajando en una consola sin periféricos. Así que plt.show() no pudo funcionar. Lo que funcionó fue llamar a 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 .

over 4 years ago · Santiago Trujillo Report

0

Yo también tuve este problema en PyCharm. Este problema se debe a que no tiene el módulo tkinter en su máquina.

Para instalar, siga los pasos que se detallan a continuación (seleccione su sistema operativo apropiado)

Para usuarios de ubuntu

 sudo apt-get install python-tk

o

 sudo apt-get install python3-tk

Para usuarios de Centos

 sudo yum install python-tkinter

o

 sudo yum install python3-tkinter

para usuarios de Arch

 sudo pacman -S tk

o

 sudo pamac install tk

Para Windows, use pip para instalar tk

Después de instalar tkinter, reinicie su Pycharm y ejecute su código, funcionará

over 4 years ago · Santiago Trujillo Report

0

Linux Mint 19. Me ayudó:

 sudo apt install tk-dev

PS Vuelva a compilar el intérprete de python después de la instalación del paquete.

over 4 years ago · Santiago Trujillo Report

0

Por si acaso esto ayuda a alguien.

Versión de Python: plataforma 3.7.7: Ubuntu 18.04.4 LTS

Esto vino con la versión predeterminada de python 3.6.9, sin embargo, había instalado mi propia versión 3.7.7 de python en él (instalado construyéndolo desde la fuente)

tkinter no funcionaba incluso cuando la help('module') muestra tkinter en la lista.

Los siguientes pasos funcionaron para mí:

  1. sudo apt-get install tk-dev.

reconstruya el python: 1. Navegue a su carpeta python y ejecute las comprobaciones:

 cd Python-3.7.7 sudo ./configure --enable-optimizations
  1. Cree usando el comando make: sudo make -j 8 --- aquí 8 es el número de procesadores, verifique el suyo usando el comando nproc .
  2. Instalación usando:

     sudo make altinstall

No use sudo make install, sobrescribirá la versión predeterminada 3.6.9, lo que podría ser complicado más adelante.

  1. Compruebe tkinter ahora
     python3.7 -m tkinter

Aparecerá un cuadro de ventana, su tkinter está listo ahora.

over 4 years ago · Santiago Trujillo Report

0

Después de actualizar muchos paquetes ( Spyder 3 a 4, Keras y Tensorflow y muchas de sus dependencias), ¡hoy tuve el mismo problema! No puedo entender lo que pasó; pero el entorno virtual (basado en conda) que seguía usando Spyder 3 no tenía el problema. Aunque instalar tkinter o cambiar el backend, via matplotlib.use('TkAgg) como se muestra arriba, o esta buena publicación sobre cómo cambiar el backend , podría resolver el problema, no las veo como soluciones rígidas. Para mí, desinstalar matplotlib y reinstalarlo fue mágico y el problema se resolvió.

 pip uninstall matplotlib

... entonces, instale

 pip install matplotlib

De todo lo anterior, esto podría ser un problema de administración de paquetes y, por cierto, uso tanto conda como pip , siempre que sea posible.

over 4 years ago · Santiago Trujillo Report

0

Cuando me encontré con este error en Spyder, cambié de ejecutar mi código línea por línea a resaltar mi bloque de código de trazado y ejecutarlo todo a la vez. Voila, apareció la imagen.

over 4 years ago · Santiago Trujillo Report

0

Puede cambiar matplotlib usando el backend usando el comando de agg a Tkinter TKAgg usando

 matplotlib.use('TKAgg',warn=False, force=True)
over 4 years ago · Santiago Trujillo Report

0

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

 sudo pacman -S tk

¡Y todo funcionará perfectamente!

over 4 years ago · Santiago Trujillo Report

0

problema = "Advertencia de usuario: Matplotlib actualmente está usando agg, que es un backend que no es GUI, por lo que no puede mostrar la figura".

Y esto funcionó para mí

 import matplotlib import matplotlib.pyplot as plt matplotlib.use('Qt5Agg')
over 4 years ago · Santiago Trujillo Report

0

Instalé python3-tk , en Ubuntu 20.04 y usando WSL2

 import numpy as np import matplotlib.pyplot as plt import matplotlib matplotlib.use( 'tkagg')

y luego instalé GWSL desde la tienda de Windows, lo que parece resolver el problema de la representación WSL2 lista para usar

over 4 years ago · Santiago Trujillo Report

0

Esto funcionó con reticulado R. Lo encontré aquí .

1: matplotlib.use( 'tkagg' ) o 2: matplotlib$use( 'tkagg' )

Por ejemplo:

 import numpy as np import matplotlib.pyplot as plt from matplotlib import style import matplotlib matplotlib.use( 'tkagg' ) style.use("ggplot") from sklearn import svm x = [1, 5, 1.5, 8, 1, 9] y = [2, 8, 1.8, 8, 0.6, 11] plt.scatter(x,y) plt.show()
over 4 years ago · Santiago Trujillo Report

0

%matplotlib inline y mi gráfico apareció en Jupyter Notebook.

over 4 years ago · Santiago Trujillo Report

0

Cabe destacar el comentario de @xicocaio.

tkinter es específico de la versión de python en el sentido de que sudo apt-get install python3-tk instalará tkinter exclusivamente para su versión predeterminada de python. Suponga que tiene diferentes versiones de python dentro de varios entornos virtuales, tendrá que instalar tkinter para la versión de python deseada utilizada en ese entorno virtual. Por ejemplo, sudo apt-get install python3.7-tk . Si no lo hace, se producirán errores No module named ' tkinter' , incluso después de instalarlo para la versión global de python.

over 4 years ago · Santiago Trujillo Report

0

Instalación sencilla

 pip3 install PyQt5==5.9.2

Esto funciona para mi.

over 4 years ago · Santiago Trujillo Report

0

ejecute el siguiente comando antes de trazar

 %matplotlib inline
over 4 years ago · Santiago Trujillo Report

0

Ejecutar %matplotlib en línea Una vez que me solucionó el problema. Encontré la respuesta aquí: cuando uso matplotlib en jupyter notebook, ¿siempre aparece el error "matplotlib actualmente está usando un backend que no es GUI"? por usuario Mulugeta Weldezgina

agregar %matplotlib en línea al importar ayuda para gráficos fluidos en el cuaderno

 %matplotlib inline import matplotlib.pyplot as plt

%matplotlib inline establece el backend de matplotlib en el backend 'en línea': con este backend, el resultado de los comandos de trazado se muestra en línea dentro de frontends como el cuaderno Jupyter, directamente debajo de la celda de código que lo produjo. Los gráficos resultantes también se almacenarán en el documento del cuaderno.

Mi problema comenzó después de que usé pandas_profile (o algo así), y %matplotlib inline una vez que arreglé el fondo para que no tuviera cabeza, etc.

over 4 years ago · Santiago Trujillo Report

0

Esto resolverá el problema. Funciona bien en jupyter.

 %matplotlib inline
over 4 years ago · Santiago Trujillo Report

0

Tratar:

 %matplotlib inline

Tuve el mismo problema y funcionó para mí. Lo probé en mis cuadernos Jupyter y el código de Visual Studio, por lo que no debería tener problemas.

over 4 years ago · Santiago Trujillo Report

0

En Mac OS, lo hice funcionar con:

 import matplotlib matplotlib.use('MacOSX')
over 4 years ago · Santiago Trujillo Report

0

Ninguna de estas respuestas funcionó para mí usando Pycharm Professional edition 2021.3

Los gráficos regulares de matplotlib funcionaron en la vista científica, pero no me permitieron agregar imágenes a los gráficos.

Lo que funcionó para mí fue agregar esta línea antes de intentar trazar algo:

plt.switch_backend('TkAgg')

over 4 years ago · Santiago Trujillo Report

0

Lo resolví colocando matplotlib.use('TkAgg') después de todas las declaraciones de importación. Uso python 3.8.5 VSCODE y anaconda. Ningún otro truco funcionó.

over 4 years ago · Santiago Trujillo Report

0

Si instala versiones de python usando pyenv en sistemas basados en Debian, asegúrese de ejecutar sudo apt install tk-dev antes de pyenv install . Si ya está instalado, elimínelo con pyenv uninstall e instálelo nuevamente después de instalar tk-dev . Por lo tanto, no es necesario configurar ninguna variable env cuando se ejecuta pyenv install .

over 4 years ago · Santiago Trujillo Report

0

Funciona si usa algún código de terceros en su proyecto. Probablemente contiene la siguiente línea

 matplotlib.use('Agg')

Búscalo y coméntalo.

Si no tiene idea de qué es, probablemente no esté usando esta parte del código.

Las soluciones sobre el uso de otra GUI de back-end pueden ser más limpias, así que elija su luchador.

over 4 years ago · Santiago Trujillo Report

0

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

 pip3 install PyQt5
over 4 years ago · Santiago Trujillo Report

0

Si usa el cuaderno Jupyter, intente lo siguiente:

 %matplotlib inline

Esto debería representar la trama incluso si no se especifica el

 plt.show()

mando.

over 4 years ago · Santiago Trujillo Report

0

La solución que funcionó para mí:

  1. Instalar tkinter

  2. importar tkinter al módulo

  3. asegúrese de que matplotlib use (TkAgg) en lugar de (Agg)

    matplotlib.use('TkAgg')

over 4 years ago · Santiago Trujillo Report

0

Otra opción es instalar Anaconda . Es un software útil donde puede crear muchos entornos y hay muchas bibliotecas ya instaladas para la ciencia de datos y el aprendizaje automático.

--Editar --

Aquí hay pasos que me ayudan a solucionar su mismo problema:

  • Paso 1: Descarga el .exe en la página oficial: Anaconda , usa la edición individual porque son las gratuitas: Anaconda Individual
  • Paso 2: una vez que haya instalado el programa, abra al final y vaya a la sección env ingrese la descripción de la imagen aquí

En esta sección, puede crear muchos env como prefiera, es decir, tengo 2 env uno para mi base principal (raíz) uno para la última versión de python.

  • Paso 3: al crear el py env en esta sección, Anaconda instalará automáticamente las principales bibliotecas utilizadas por los desarrolladores, disminuyendo el riesgo de obtener errores en su código.

  • Consideración adicional : como puede ver en el complemento a continuación, puede ver fácilmente qué bibliotecas ha instalado en su conda. Recibí tu mismo ese error porque me perdí una de esas 3 librerías ingrese la descripción de la imagen aquí

¡La esperanza fue útil y clara de entender! cya

over 4 years ago · Santiago Trujillo Report

0

Para Windows 10, si usar pip install tk no funciona para usted, intente:

  • Descargue y ejecute el instalador oficial de Python para Windows. Incluso si ya lo tienes descargado, ejecútalo de nuevo.
  • Al (re)instalar Python, asegúrese de elegir las opciones "avanzadas" y establezca la casilla de verificación "tcl/tk e IDLE" en verdadero.
  • Si ya tenía Python instalado, seleccione la opción "Modificar" y asegúrese de que la casilla de verificación esté seleccionada.

Fuente de mi corrección: https://stackoverflow.com/a/59970646/2506354

over 4 years ago · Santiago Trujillo Report

0

Configuración de la línea de comandos de Ubuntu 20.04. Instalo lo siguiente para hacer que Matplotlib deje de arrojar el error UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.

Instalé python-tk a través de los pasos:

 apt-get update apt-get install python3.8-tk
over 4 years ago · Santiago Trujillo Report

0

Tenga cuidado con el orden de importación en su código, pasé un día entero revisando estas respuestas y terminé resolviendo el problema importando bt antes que nada y luego usando la .use('TkAgg') (por alguna razón, importar bt cambia el backend de matplotlib a 'Agg')

over 4 years ago · Santiago Trujillo Report

0

En WSL con servidor X

Asegúrese de que su servidor X funcione. Matplotlib indica este error si no puede conectarse a la pantalla X.

Configuración del cortafuegos de Windows

¡Presta atención al cortafuegos de Windows! Cambié de WSL Debian a Ubuntu y no recordaba la regla del firewall. Uso esta publicación para configurar la regla del firewall de Windows para que el servidor X funcione. Este método evita una regla demasiado permisiva que permita a cualquiera usar su servidor X.

Decía :

Si ya había instalado un servidor X11, es posible que Windows haya creado reglas de firewall que alterarán la configuración anterior. Búscalos y elimínalos en "Firewall de Windows Defender con seguridad avanzada".

Ahora deberá configurar el Firewall de Windows para permitir las conexiones de WSL2 al servidor de visualización X11. Instalará el servidor de pantalla en el siguiente paso. Realizamos este paso primero para evitar que el Firewall de Windows cree automáticamente una regla de firewall insegura cuando ejecuta el servidor de pantalla X11. Muchas guías sobre el reenvío X11 y WSL2 hacen que esta regla de firewall sea demasiado permisiva, lo que permite conexiones desde cualquier computadora a su computadora. Esto significa que, en teoría, alguien podría, si está en su misma red, comenzar a enviar información de visualización gráfica a su computadora.

Para evitar esto, haremos que el Firewall de Windows solo acepte tráfico de Internet desde la instancia de WSL2.

Para configurar esto, puede copiar lo siguiente en un script y ejecutarlo desde WSL2:

 #!/bin/sh LINUX_IP=$(ip addr | awk '/inet / && !/127.0.0.1/ {split($2,a,"/"); print a[1]}') WINDOWS_IP=$(ip route | awk '/^default/ {print $3}') # Elevate to administrator status then run netsh to add firewall rule powershell.exe -Command "Start-Process netsh.exe -ArgumentList \"advfirewall firewall add rule name=X11-Forwarding dir=in action=allow program=%ProgramFiles%\VcXsrv\vcxsrv.exe localip=$WINDOWS_IP remoteip=$LINUX_IP localport=6000 protocol=tcp\" -Verb RunAs"

Método manual:

Como alternativa, puede agregar manualmente la regla a través de una GUI haciendo lo siguiente:

  1. Abra "Firewall de Windows Defender con seguridad avanzada"
  2. Al hacer clic en Agregar nueva regla, aparece el Asistente para nueva regla (al lado para navegar entre cada sección):
    • Tipo de regla: personalizada
    • Programa: "Esta ruta del programa:" %ProgramFiles%\VcXsrv\vcxsrv.exe
    • Protocolo y puertos
    • Tipo de protocolo: TCP
    • Puerto local: 6000
    • Puerto remoto: cualquiera
    • Alcance
      • Dirección IP local: obtenga la dirección IP para ingresar ejecutando el siguiente comando en WSL2 ip route | awk '/^default/ {print $3}'
    • direcciones IP remotas
      • Obtenga la dirección IP para ingresar ejecutando lo siguiente en WSL2 ip addr | awk '/inet / && !/127.0.0.1/ {split($2,a,"/"); print a[1]}'
    • Acción: "Permitir la conexión
    • Perfil: dominio de selección, privado y público
    • Nombre: "Reenvío X11"
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!