Próbuję wykreślić prosty wykres za pomocą pyplota, np .:
import matplotlib.pyplot as plt
plt.plot([1,2,3],[5,7,4])
plt.show()
ale liczba się nie pojawia i pojawia się następujący komunikat:
UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.
Widziałem w kilku miejscach, że trzeba zmienić konfigurację matplotlib za pomocą:
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
Zrobiłem to, ale otrzymałem komunikat o błędzie, ponieważ nie mogę znaleźć modułu:
ModuleNotFoundError: No module named 'tkinter'
Następnie próbowałem zainstalować „tkinter” za pomocą pip install tkinter
(w środowisku wirtualnym), ale go nie znalazłem:
Collecting tkinter
Could not find a version that satisfies the requirement tkinter (from versions: )
No matching distribution found for tkinter
Powinienem również wspomnieć, że uruchamiam to wszystko na Pycharm Community Edition IDE w środowisku wirtualnym, a mój system operacyjny to Linux / Ubuntu 18.04.
Chciałbym wiedzieć, jak mogę rozwiązać ten problem, aby móc wyświetlić wykres.
python
matplotlib
pycharm
johnwolf1987
źródło
źródło
Odpowiedzi:
Znalazłem rozwiązanie mojego problemu (dzięki pomocy ImportanceOfBeingErnest ).
Wszystko, co musiałem zrobić, to zainstalować
tkinter
przez terminal Linux bash za pomocą następującego polecenia:zamiast instalować go z
pip
lub bezpośrednio w środowisku wirtualnym w Pycharm.źródło
import matplotlib
imatplotlib.use('TkAgg')
)python3-matplotlib-tk
.tkinter
jest specyficzna dla wersji Pythona w tym sensie, że to konkretne polecenie zainstaluje siętkinter
wyłącznie dla domyślnej wersji Pythona. Załóżmy, że masz różne instalacje wersji Pythona dla różnych wirtualnych środowisk. W takim przypadku będziesz musiał zainstalować go dla żądanej wersji Pythona używanej w tym działającym pliku venv. Na przykład w moim przypadku:sudo apt-get install python3.7-tk
. Nie wiedząc o tym, zmagałem się przez rozsądną ilość czasu z brakiem błędów „tkinter” w nazwie modułu, nawet po zainstalowaniu go dla mojej globalnej wersji Pythona.sudo apt-get install python3.8-tk
jeśli twoja wersja Pythona to 3.8W moim przypadku komunikat o błędzie sugerował, że pracowałem na konsoli bezgłowej. Więc
plt.show()
nie mógł działać. To, co zadziałało, to dzwonienieplt.savefig
:import matplotlib.pyplot as plt plt.plot([1,2,3], [5,7,4]) plt.savefig("mygraph.png")
Znalazłem odpowiedź w repozytorium github .
źródło
Jeśli używasz Arch Linux (dystrybucje takie jak
Manjaro
lubAntegros
), po prostu wpisz:I wszystko będzie działać idealnie!
źródło
Spróbuj,
import tkinter
ponieważ pycharm już zainstalował tkinter dla ciebie, szukałem Zainstaluj tkinter dla PythonaMożesz spróbować:
import tkinter import matplotlib matplotlib.use('TkAgg') plt.plot([1,2,3],[5,7,4]) plt.show()
jako sposób instalacji tkintera
Próbowałem na swój sposób, nie wydaje się, aby uruchomić na moim komputerze błąd, pomyślnie pokazuje rysunek. może dlatego, że pycharm ma tkinter jako pakiet systemowy, więc nie musisz go instalować. Ale jeśli nie możesz znaleźć tkintera w środku, możesz udać się do Tkdocs, aby zobaczyć sposób instalacji tkintera, jak wspomniano, tkinter jest podstawowym pakietem dla Pythona.
źródło
ModuleNotFoundError: No module named 'tkinter'
). Spróbuję zainstalować tkinter w inny sposób.Ja też miałem ten problem w PyCharm. Ten problem jest spowodowany tym, że nie masz modułu tkinter na swoim komputerze.
Aby zainstalować, wykonaj czynności podane poniżej (wybierz odpowiedni system operacyjny)
Dla użytkowników ubuntu
lub
Dla użytkowników Centos
lub
W systemie Windows użyj pip, aby zainstalować tk
Po zainstalowaniu tkinter uruchom ponownie Pycharm i uruchom kod, będzie działać
źródło
Prosta instalacja
pip3 install PyQt5==5.9.2
Mi to pasuje.
źródło
To działało z siatką R. Znalazłem to tutaj .
1: matplotlib.use( 'tkagg' )
lub2: matplotlib$use( 'tkagg' )
Na przykład:
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()
źródło
Po wielu modernizacji opakowań (
Spyder
3 do 4,Keras
aTensorflow
i wiele ich zależności), miałem ten sam problem już dziś! Nie mogę zrozumieć, co się stało; ale środowisko wirtualne (oparte na conda), które nadal używałoSpyder
3, nie miało problemu. Chociaż instalacjatkinter
lub zmiana zaplecza,via matplotlib.use('TkAgg)
jak pokazano powyżej, lub ten fajny post dotyczący zmiany zaplecza może równie dobrze rozwiązać problem, nie uważam tego za sztywne rozwiązania. Dla mnie odinstalowaniematplotlib
i ponowne zainstalowanie było magiczne i problem został rozwiązany.... następnie zainstaluj
Z powyższego wynika, że może to być problem z zarządzaniem pakietami, a tak przy okazji, używam obu
conda
ipip
, kiedy tylko jest to możliwe.źródło
Możesz zmienić matplotlib za pomocą backendu, używając od
agg
do TkinterTKAgg
za pomocą poleceniamatplotlib.use('TKAgg',warn=False, force=True)
źródło
Dodałem % matplotlib inline i moja działka pojawiła się w Jupyter Notebook.
źródło
Linux Mint 19. Pomógł mi:
PS Przekompiluj interpreter języka Python po instalacji pakietu.
źródło
Na wszelki wypadek, jeśli komuś to pomoże.
Wersja Pythona: 3.7.7 platforma: Ubuntu 18.04.4 LTS
To przyszło z domyślną wersją Pythona 3.6.9, jednak zainstalowałem na nim własną wersję pythona 3.7.7 (zainstalowałem budując go ze źródła)
tkinter nie działał nawet wtedy, gdy
help('module')
wyświetlał tkinter na liście.Pomogły mi następujące kroki:
sudo apt-get install tk-dev.
odbuduj pythona: 1. Przejdź do folderu python i uruchom testy:
cd Python-3.7.7 sudo ./configure --enable-optimizations
sudo make -j 8
--- tutaj 8 to liczba procesorów, sprawdź swoje za pomocąnproc
polecenia.Instalowanie za pomocą:
Nie używaj sudo make install, spowoduje to nadpisanie domyślnej wersji 3.6.9, która może być później niechlujna.
python3.7 -m tkinter
Pojawi się okno dialogowe, twój tkinter jest teraz gotowy.
źródło
Kiedy napotkałem ten błąd w Spyder, zmieniłem z uruchamiania mojego kodu wiersz po wierszu na podświetlanie mojego bloku kreślenia kodu i uruchamianie go jednocześnie. Voila, pojawił się obraz.
źródło
Należy wyróżnić komentarz @xicocaio.
tkinter jest specyficzny dla wersji Pythona w tym sensie, że
sudo apt-get install python3-tk
zainstaluje tkinter wyłącznie dla domyślnej wersji Pythona. Załóżmy, że masz różne wersje Pythona w różnych środowiskach wirtualnych, będziesz musiał zainstalować tkinter dla żądanej wersji Pythona używanej w tym środowisku wirtualnym. Na przykładsudo apt-get install python3.7-tk
. Nie zrobienie tego nadal będzie prowadzić doNo module named ' tkinter'
błędów, nawet po zainstalowaniu go dla globalnej wersji Pythona.źródło