Estou tentando traçar um gráfico simples usando pyplot, por exemplo:
import matplotlib.pyplot as plt
plt.plot([1,2,3],[5,7,4])
plt.show()
mas a figura não aparece e recebo a seguinte mensagem:
UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.
Eu vi em vários lugares que era preciso alterar a configuração do matplotlib usando o seguinte:
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
Fiz isso, mas recebi uma mensagem de erro porque não consigo encontrar um módulo:
ModuleNotFoundError: No module named 'tkinter'
Então, tentei instalar o "tkinter" usando pip install tkinter
(dentro do ambiente virtual), mas não encontrou:
Collecting tkinter
Could not find a version that satisfies the requirement tkinter (from versions: )
No matching distribution found for tkinter
Devo também mencionar que estou executando tudo isso no Pycharm Community Edition IDE usando um ambiente virtual, e que meu sistema operacional é Linux / Ubuntu 18.04.
Gostaria de saber como posso resolver este problema para poder visualizar o gráfico.
python
matplotlib
pycharm
johnwolf1987
fonte
fonte
Respostas:
Encontrei uma solução para o meu problema (graças à ajuda do ImportanceOfBeingErnest ).
Tudo que precisei fazer foi instalar
tkinter
por meio do terminal bash do Linux usando o seguinte comando:em vez de instalá-lo com
pip
ou diretamente no ambiente virtual do Pycharm.fonte
import matplotlib
ematplotlib.use('TkAgg')
)python3-matplotlib-tk
.tkinter
é específico da versão do python, no sentido de que este comando em particular será instaladotkinter
exclusivamente para sua versão padrão do python. Suponha que você tenha instalações de versões diferentes de python para vários ambientes virtuais. Nesse caso, você terá que instalá-lo para a versão do Python desejada usada naquele venv em funcionamento. Por exemplo, no meu caso:sudo apt-get install python3.7-tk
. Não saber disso me fez lutar um tempo razoável para não obter erros de nome de módulo 'tkinter', mesmo depois de instalá-lo para minha versão global de python.No meu caso, a mensagem de erro sugeria que eu estava trabalhando em um console sem interface. Portanto,
plt.show()
não poderia funcionar. O que funcionou foi chamarplt.savefig
:import matplotlib.pyplot as plt plt.plot([1,2,3], [5,7,4]) plt.savefig("mygraph.png")
Eu encontrei a resposta em um repositório github .
fonte
Se você usa Arch Linux (distribuições como
Manjaro
ouAntegros
) simplesmente digite:E tudo funcionará perfeitamente!
fonte
Tente
import tkinter
porque o pycharm já instalou o tkinter para você, procurei Instalar o tkinter para PythonVocê pode tentar:
import tkinter import matplotlib matplotlib.use('TkAgg') plt.plot([1,2,3],[5,7,4]) plt.show()
como uma forma de instalação do tkinter
Já tentei do seu jeito, parece que não há erro ao rodar no meu computador, ele mostra a figura com sucesso. talvez porque o pycharm tem tkinter como um pacote de sistema, então você não precisa instalá-lo. Mas se você não conseguir encontrar o tkinter dentro, você pode ir ao Tkdocs para ver a maneira de instalar o tkinter, como ele menciona, tkinter é um pacote básico para python.
fonte
ModuleNotFoundError: No module named 'tkinter'
). Vou tentar instalar o tkinter de outra forma.Eu também tive esse problema no PyCharm. Esse problema ocorre porque você não tem o módulo tkinter em sua máquina.
Para instalar, siga as etapas abaixo (selecione seu sistema operacional apropriado)
Para usuários do Ubuntu
ou
Para usuários Centos
ou
Para Windows, use pip para instalar tk
Depois de instalar o tkinter reinicie seu Pycharm e execute seu código, ele vai funcionar
fonte
Instalação simples
pip3 install PyQt5==5.9.2
Funciona para mim.
fonte
Você pode alterar o matplotlib usando o backend usando o de
agg
para o TkinterTKAgg
usando o comandomatplotlib.use('TKAgg',warn=False, force=True)
fonte
Linux Mint 19. Ajudou para mim:
PS Recompile o interpretador python após a instalação do pacote.
fonte
Apenas no caso de ajudar alguém.
Versão Python: plataforma 3.7.7: Ubuntu 18.04.4 LTS
Isso veio com o python padrão versão 3.6.9, no entanto, eu tinha instalado minha própria versão 3.7.7 do python nele (instalado compilando-o a partir da fonte)
tkinter não estava funcionando mesmo quando o
help('module')
mostra tkinter na lista.As etapas a seguir funcionaram para mim:
sudo apt-get install tk-dev.
reconstruir o python: 1. Navegue até a pasta python e execute as verificações:
cd Python-3.7.7 sudo ./configure --enable-optimizations
sudo make -j 8
--- aqui 8 são o número de processadores, verifique o seu usando onproc
comando.Instalando usando:
Não use sudo make install, ele sobrescreverá a versão 3.6.9 padrão, que pode ser confusa mais tarde.
python3.7 -m tkinter
Uma caixa de janela aparecerá, seu tkinter está pronto agora.
fonte
Depois de atualizar muitos pacotes (
Spyder
3 a 4,Keras
eTensorflow
e lotes de suas dependências), eu tive o mesmo problema hoje! Não consigo descobrir o que aconteceu; mas o ambiente virtual (baseado em conda) que continuou usandoSpyder
3 não teve o problema. Embora instalartkinter
ou alterar o back-end,via matplotlib.use('TkAgg)
como mostrado acima, ou este belo post sobre como alterar o back-end , possa resolver o problema, não vejo essas soluções como rígidas. Para mim, desinstalarmatplotlib
e reinstalar foi mágico e o problema foi resolvido.... então, instale
De todo o exposto, este pode ser um problema de gerenciamento de pacote, e BTW, eu uso ambos
conda
epip
, sempre que possível.fonte
Quando encontrei esse erro no Spyder, mudei de executar meu código linha por linha para destacar meu bloco de plotagem de código e executar tudo de uma vez. Voila, a imagem apareceu.
fonte
Eu adicionei % matplotlib embutido e meu gráfico apareceu no Jupyter Notebook.
fonte
O comentário de @xicocaio deve ser destacado.
tkinter é específico da versão do python, no sentido de que
sudo apt-get install python3-tk
instalará o tkinter exclusivamente para sua versão padrão do python. Suponha que você tenha diferentes versões de python em vários ambientes virtuais, você terá que instalar o tkinter para a versão de python desejada usada naquele ambiente virtual. Por exemplosudo apt-get install python3.7-tk
,. Não fazer isso ainda levará aNo module named ' tkinter'
erros, mesmo depois de instalá-lo para a versão global do python.fonte