Pycharm zeigt keine Handlung aus dem folgenden Code an:
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()
Was passiert ist, dass ein Fenster weniger als eine Sekunde lang erscheint und dann wieder verschwindet.
Bei Verwendung der Pyzo IEP IDE (unter Verwendung desselben Interpreters) mit demselben Code wird das Diagramm wie erwartet angezeigt.
... Das Problem muss also bei einer Einstellung auf Pycharm liegen. Ich habe versucht, sowohl python.exe als auch pythonw.exe als Interpreter mit denselben Ergebnissen zu verwenden.
Das ist meine 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
quelle
quelle
plt.pyplot.show()
?Antworten:
Benutz einfach
Dieser Befehl weist das System an, den Plot in Pycharm zu zeichnen.
Beispiel:
quelle
plt.draw()
da ich die Abbildung später aktualisiere?plt.show()
funktioniert gut,plt.draw()
zeigt aber nichts in PyCharm.%matplotlib inline
. @CGFox, draw soll explizit in den Speicher gerendert, aber nicht auf dem Bildschirm (oder in der Datei) angezeigt werden. Sie müssen entweder plt.pause (0.1) ausführen, damit die Diagramme angezeigt werden, oder plt.show (pause = True) an einer anderen Stelle im CodeMir ist klar, dass dies alt ist, aber ich dachte, ich würde ein Missverständnis für andere Reisende aufklären. Die Einstellung
plt.pyplot.isinteractive()
aufFalse
bedeutet, dass der Plot mit bestimmten Befehlen zum Zeichnen (dhplt.pyplot.show()
) gezeichnet wird . Die Einstellungplt.pyplot.isinteractive()
aufTrue
bedeutet, dass jederpyplot
(plt
) Befehl einen Zeichenbefehl auslöst (dhplt.pyplot.show()
). Was Sie also höchstwahrscheinlich gesucht haben, istplt.pyplot.show()
am Ende Ihres Programms, um das Diagramm anzuzeigen.Als Randnotiz können Sie diese Anweisungen etwas verkürzen, indem Sie den folgenden Importbefehl
import matplotlib.pyplot as plt
anstelle von verwendenmatplotlib as plt
.quelle
Ich hatte das gleiche Problem. Überprüfen Sie, ob
plt.isinteractive()
True ist. Es hat mir geholfen, es auf "Falsch" zu setzen.quelle
Ich habe verschiedene Lösungen ausprobiert, aber was schließlich für mich funktioniert hat, war
plt.show(block=True)
. Sie müssen diesen Befehl nach demmyDataFrame.plot()
Befehl hinzufügen, damit dies wirksam wird. Wenn Sie mehrere Diagramme haben, fügen Sie einfach den Befehl am Ende Ihres Codes hinzu. Damit können Sie alle Daten anzeigen, die Sie zeichnen.quelle
Funktioniert bei mir. (PyCharm / OSX)
quelle
plt.show()
funktioniert, als es in einer neueren Version von PyCharm (2020.1) nicht mehr geholfen hat.Ich teste in meiner Version von Pycharm (Community Edition 2017.2.2). Möglicherweise müssen Sie sowohl plt.interactive (False) als auch plt.show (block = True) wie folgt ankündigen:
quelle
Ich habe eine Lösung gefunden. Das hat bei mir funktioniert:
quelle
Bald nach dem Anruf
Anruf
Sie erhalten das Matplotlib-Popup mit dem Bild.
Dies ist ein blockierender Weg. Ein weiteres Skript wird erst ausgeführt, wenn der Pop geschlossen ist.
quelle
Bei mir war das Problem die Tatsache, dass matplotlib das falsche Backend verwendete. Ich benutze Debian Jessie.
In einer Konsole habe ich folgendes gemacht:
Das Ergebnis war: 'agg', während dies 'TkAgg' sein sollte.
Die Lösung war einfach:
quelle
Fügen Sie einfach hinzu
plt.pyplot.show()
, das wäre in Ordnung.Die beste Lösung ist das Deaktivieren von SciView.
quelle
Ich habe in meiner Version auf PyCharm 2017.1.2 getestet. Ich habe interaktiv (True) und show (block = True) verwendet.
quelle
Keiner der oben genannten Punkte hat bei mir funktioniert, aber der folgende hat funktioniert:
Deaktivieren Sie das Kontrollkästchen (Diagramme im Werkzeugfenster anzeigen) in pycharm
settings > Tools > Python Scientific
.Ich habe den Fehler erhalten
No PyQt5 module found
. Die Installation derPyQt5
Verwendung von:Beachten Sie, dass für einige nur der erste Schritt ausreicht und funktioniert.
quelle
Meine Umgebung: macOS & anaconda3
Das funktioniert bei mir:
oder interaktiver Modus:
quelle
Ich hatte dieses Problem und ich konnte es lösen, Sie können meinen Weg testen. Deaktivieren Sie "Diagramme im Werkzeugfenster anzeigen" unter Einstellung -> Werkzeuge -> Python Scientific
quelle
Der Kommentar von DanT hat dies für mich behoben, matplotlib mit pycharm unter Linux mit dem GTKagg-Backend. Beim Importieren von matplotlib würde folgende Fehlermeldung angezeigt:
Wenn Sie so etwas planen:
Ein Zahlenbildschirm wird angezeigt, es werden jedoch keine Diagramme angezeigt. mit:
zeigt die Grafik korrekt an.
quelle
In meinem Fall wollte ich Folgendes tun:
Nach einer Mischung der Lösungen hier bestand meine Lösung darin, vorher die folgenden Befehle hinzuzufügen:
mit den folgenden zwei Importen
Es scheint, dass alle Befehle in meinem Fall mit einem MBP mit ElCapitan und PyCharm 2016.2.3 erforderlich sind. Schöne Grüße!
quelle
Für Anfänger möchten Sie möglicherweise auch sicherstellen, dass Sie Ihr Skript in der Konsole ausführen und nicht als regulären Python-Code. Es ist ziemlich einfach, einen Code hervorzuheben und auszuführen .
quelle
In nicht interaktiver Umgebung müssen wir plt.show verwenden (block = True)
quelle
Für diejenigen, die ein Skript in einer IDE ausführen (und nicht in einer interaktiven Umgebung wie einer Python-Konsole oder einem Notebook arbeiten), war dies die intuitivste und einfachste Lösung:
Es zeigt die Figur und wartet, bis der Benutzer auf das neue Fenster klickt. Erst dann wird das Skript fortgesetzt und der Rest des Codes ausgeführt.
quelle
Ich konnte hier eine Kombination aus einigen der anderen Vorschläge für mich arbeiten bekommen, aber nur während der Hin- und Herschalten
plt.interactive(False)
zuTrue
und wieder zurück.Dies wird meine Handlungen aufblitzen lassen. Stellen Sie dann die
False
Option zum Anzeigen ein.Wie bereits erwähnt, wurde mein Programm erst beendet, wenn alle Fenster geschlossen waren. Hier sind einige Details zu meiner aktuellen Laufumgebung:
quelle
Eine Eigenschaft muss für Pycharm festgelegt werden.
quelle
Ändern Sie den Import in:
oder benutze diese Zeile:
quelle
Ich benutze Ubuntu und habe versucht, wie @Arie oben sagte, aber mit dieser Zeile nur im Terminal:
Und es hat funktioniert!
quelle
In Pycharm wird die Matplotlib.plot manchmal nicht angezeigt.
plt.show()
Überprüfen Sie nach dem Aufruf die rechte Symbolleiste für SciView. In SciView werden alle generierten Diagramme gespeichert.quelle
Ich hatte oben einen Fehler, als ich versuchte, ein Histogramm zu zeichnen, und unten Punkte arbeiteten für mich.
Betriebssystem: Mac Catalina 10.15.5
Pycharm-Version: Community-Version 2019.2.3
Python-Version: 3.7
von :
import matplotlib.pylab as plt
zu:
import matplotlib.pyplot as plt
von:
zu:
plt.show()
quelle