Pycharm nie pokazuje fabuły z następującego kodu:
import pandas as pd
import numpy as np
import matplotlib as plt
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts = ts.cumsum()
ts.plot()
Dzieje się tak, że okno pojawia się na mniej niż sekundę, a następnie ponownie znika.
Używając Pyzo IEP IDE (używając tego samego interpretera) na tym samym kodzie, wykres pokazuje zgodnie z oczekiwaniami.
... Więc problem musi być z jakimś ustawieniem na Pycharmie. Próbowałem używać zarówno python.exe, jak i pythonw.exe jako interpretera z tymi samymi wynikami.
To jest moje sys_info:
C:\pyzo2014a\pythonw.exe -u C:\Program Files (x86)\JetBrains\PyCharm Community Edition 3.4.1\helpers\pydev\pydevconsole.py 57315 57316
PyDev console: using IPython 2.1.0import sys; print('Python %s on %s' % (sys.version, sys.platform))
Python 3.4.1 |Continuum Analytics, Inc.| (default, May 19 2014, 13:02:30) [MSC v.1600 64 bit (AMD64)] on win32
sys.path.extend(['C:\\Users\\Rasmus\\PycharmProjects\\untitled2'])
In[3]: import IPython
print(IPython.sys_info())
{'commit_hash': '681fd77',
'commit_source': 'installation',
'default_encoding': 'UTF-8',
'ipython_path': 'C:\\pyzo2014a\\lib\\site-packages\\IPython',
'ipython_version': '2.1.0',
'os_name': 'nt',
'platform': 'Windows-8-6.2.9200',
'sys_executable': 'C:\\pyzo2014a\\pythonw.exe',
'sys_platform': 'win32',
'sys_version': '3.4.1 |Continuum Analytics, Inc.| (default, May 19 2014, '
'13:02:30) [MSC v.1600 64 bit (AMD64)]'}
python
matplotlib
pycharm
Rasmus Larsen
źródło
źródło
plt.pyplot.show()
działa?Odpowiedzi:
Po prostu użyj
To polecenie mówi systemowi, aby narysował działkę w Pycharm.
Przykład:
źródło
plt.draw()
ponieważ później aktualizuję rysunek?plt.show()
działa dobrze, aleplt.draw()
nic nie wyświetla w PyCharm.%matplotlib inline
. @CGFox, rysowanie ma jawnie renderować do pamięci, ale nie wyświetlać na ekranie (lub do pliku). Musisz albo plt.pause (0.1), aby wyświetlić wykresy, lub wywołać plt.show (pause = True) w innym punkcie kodu, aby zmusić je do renderowaniaZdaję sobie sprawę, że to stare, ale pomyślałem, że wyjaśnię błędne przekonanie innym podróżnikom. Ustawienie
plt.pyplot.isinteractive()
naFalse
oznacza, że wykres będzie rysowany na podstawie określonych poleceń rysowania (tjplt.pyplot.show()
.). Ustawienieplt.pyplot.isinteractive()
naTrue
oznacza, że każde poleceniepyplot
(plt
) wywoła polecenie rysowania (tjplt.pyplot.show()
.). Więc to, czego prawdopodobnie szukałeś, toplt.pyplot.show()
koniec programu, aby wyświetlić wykres.Na marginesie, możesz nieco skrócić te instrukcje, używając następującego polecenia importu
import matplotlib.pyplot as plt
zamiastmatplotlib as plt
.źródło
Miałem ten sam problem. Sprawdź, czy
plt.isinteractive()
to prawda. Ustawienie go na „Fałsz” pomogło mi.źródło
Próbowałem różnych rozwiązań, ale ostatecznie zadziałało
plt.show(block=True)
. Aby to zadziałało, musisz dodać to polecenie pomyDataFrame.plot()
poleceniu. Jeśli masz wiele wykresów, po prostu dodaj polecenie na końcu kodu. Pozwoli ci to zobaczyć wszystkie wykreślane dane.źródło
Pracuje dla mnie. (PyCharm / OSX)
źródło
plt.show()
nie pomogło już w nowszej wersji PyCharm (2020.1).Testuję w mojej wersji Pycharm (Community Edition 2017.2.2), może być konieczne ogłoszenie zarówno plt.interactive (False), jak i plt.show (block = True) w następujący sposób:
źródło
Znalazłem rozwiązanie. To zadziałało dla mnie:
źródło
Wkrótce po telefonie
połączenie
Otrzymasz wyskakujące okienko matplotlib z obrazem.
To jest sposób blokujący. Dalszy skrypt nie będzie działał, dopóki pop nie zostanie zamknięty.
źródło
U mnie problemem był fakt, że matplotlib używał złego backendu. Używam Debiana Jessie.
W konsoli wykonałem następujące czynności:
Wynik był: „agg”, podczas gdy to powinno być „TkAgg”.
Rozwiązanie było proste:
źródło
Dodaj tylko
plt.pyplot.show()
, że byłoby dobrze.Najlepszym rozwiązaniem jest wyłączenie SciView.
źródło
Testowałem w mojej wersji na PyCharm 2017.1.2. Użyłem interaktywności (True) i show (blok = True).
źródło
Żadne z powyższych nie działało dla mnie, ale następujące:
Wyłącz pole wyboru (Pokaż wykresy w oknie narzędzi) w pycharm
settings > Tools > Python Scientific
.Otrzymałem błąd
No PyQt5 module found
. Rozpoczęto instalację zaPyQt5
pomocą:Uważaj, że dla niektórych wystarczy tylko pierwszy krok i działa.
źródło
Mój env: macOS i anaconda3
To działa dla mnie:
lub tryb interaktywny:
źródło
miałem ten problem i mogłem go rozwiązać, możesz przetestować mój sposób .. wyłącz opcję "pokaż wykresy w oknie narzędzi" z ustawienia -> narzędzia -> python naukowe
źródło
Komentarz DanT naprawił to dla mnie, matplotlib z pycharm na Linuksie z zapleczem GTKagg. Po zaimportowaniu matplotlib otrzymywałbym następujący błąd:
Podczas kreślenia czegoś takiego:
Pojawił się ekran z postaciami, ale nie pojawiały się żadne wykresy. za pomocą:
wyświetla grafikę poprawnie.
źródło
W moim przypadku chciałem wykonać następujące czynności:
Po mieszaniu rozwiązań tutaj, moim rozwiązaniem było dodanie wcześniej następujących poleceń:
z następującymi dwoma importami
Wygląda na to, że wszystkie polecenia są potrzebne w moim przypadku, z MBP z ElCapitan i PyCharm 2016.2.3. Pozdrowienia!
źródło
Dla początkujących możesz również upewnić się, że uruchamiasz skrypt w konsoli , a nie jako zwykły kod w Pythonie. Dość łatwo jest wyróżnić fragment kodu i uruchomić go .
źródło
W nieinteraktywnym środowisku env musimy użyć plt.show (block = True)
źródło
Dla tych, którzy uruchamiają skrypt w środowisku IDE (i nie pracują w środowisku interaktywnym, takim jak konsola Pythona lub notebook), uznałem to za najbardziej intuicyjne i najprostsze rozwiązanie:
Pokazuje rysunek i czeka, aż użytkownik kliknie w nowe okno. Dopiero wtedy wznawia skrypt i uruchamia resztę kodu.
źródło
Udało mi się uzyskać połączenie niektóre inne sugestie tutaj pracy dla mnie, ale tylko wtedy, gdy przełączenie opcji
plt.interactive(False)
doTrue
iz powrotem.Spowoduje to wyświetlenie moich działek. Następnie ustawienie
False
dozwolone do przeglądania.Jak zauważono, również mój program nie kończył się, dopóki wszystkie okna nie zostały zamknięte. Oto kilka szczegółów dotyczących mojego obecnego środowiska uruchamiania:
źródło
Jedna właściwość musi być ustawiona na pycharm.
źródło
Zmień import na:
lub użyj tej linii:
źródło
Używam Ubuntu i próbowałem, jak powiedział powyżej @Arie, ale z tą linią tylko w terminalu:
I zadziałało!
źródło
W Pycharm czasami Matplotlib.plot się nie pojawia.
Więc po wywołaniu
plt.show()
sprawdź na prawym pasku narzędzi dla SciView. Wewnątrz SciView będą przechowywane wszystkie wygenerowane wykresy.źródło
Napotkałem powyższy błąd, gdy próbuję wykreślić histogram, a poniższe punkty zadziałały dla mnie.
System operacyjny: Mac Catalina 10.15.5
Wersja Pycharm: wersja dla społeczności 2019.2.3
Wersja Pythona: 3.7.0
z :
import matplotlib.pylab as plt
do:
import matplotlib.pyplot as plt
z:
do :
plt.show()
źródło