Wenn Sie dies in einem Skript (nicht IPython) verwenden, geschieht nichts, dh das Plotfenster wird nicht angezeigt:
import numpy as np
import pandas as pd
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts.plot()
Auch beim Hinzufügen time.sleep(5)
gibt es noch nichts. Warum?
Gibt es eine Möglichkeit, dies zu tun, ohne matplotlib manuell aufrufen zu müssen ?
python
pandas
matplotlib
Basj
quelle
quelle
ts.plot()
?import matplotlib.pyplot as plt
,plt.show()
ts.plot()
das programm sofort danach beendet wird. Auch wenn ichtime.sleep(10)
nichts hinzufüge, wird nichts angezeigt.plot()
eines Panda-Objekts alles für mich erledigen würde (dh Pandas erledigt den Matplotlib-Job anstelle von mir): siehe dieses Beispiel .Antworten:
Sobald Sie Ihre Handlung gemacht haben, müssen Sie matplotlib dazu informieren
show
. Die übliche Vorgehensweise besteht darinmatplotlib.pyplot
,show
von dort aus zu importieren und aufzurufen :import numpy as np import pandas as pd import matplotlib.pyplot as plt ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000)) ts.plot() plt.show()
Da Sie darum gebeten haben, dies nicht zu tun (warum?), Können Sie Folgendes verwenden [HINWEIS: Dies scheint mit neueren Versionen von nicht mehr zu funktionieren
pandas
]:import numpy as np import pandas as pd ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000)) ts.plot() pd.tseries.plotting.pylab.show()
Aber alles, was Sie dort tun, ist, einen Ort zu finden,
matplotlib
in den importiert wurdepandas
, undshow
von dort aus dieselbe Funktion aufzurufen .Versuchen Sie zu vermeiden, dass Sie anrufen, um die
matplotlib
Dinge zu beschleunigen? Wenn ja, dann beschleunigen Sie wirklich nichts, dapandas
bereits importiertpyplot
:python -mtimeit -s 'import pandas as pd' 100000000 loops, best of 3: 0.0122 usec per loop python -mtimeit -s 'import pandas as pd; import matplotlib.pyplot as plt' 100000000 loops, best of 3: 0.0125 usec per loop
Der Grund, warum das Beispiel, das Sie in Kommentaren verlinkt haben, nicht aufgerufen werden muss,
matplotlib
ist, dass es interaktiviPython notebook
in einem Skript und nicht in einem Skript ausgeführt wird.quelle
matplotlib,
Wenn Sie und immer noch Dinge verwenden, die im iPython-Notizbuch (oder auch in Jupyter Lab) nicht angezeigt werden, müssen Sie die Inline-Option fürmatplotlib
im Notizbuch festlegen .import matplotlib.pyplot as plt %matplotlib inline
Dann funktioniert der folgende Code einwandfrei:
fig, ax = plt.subplots(figsize=(16,9)); change_per_ins.plot(ax=ax, kind='hist')
Wenn Sie die Inline-Option nicht festlegen, wird sie nicht angezeigt. Wenn Sie
plt.show()
am Ende ein hinzufügen, erhalten Sie doppelte Ausgaben.quelle
Ich habe es gerade getan
import matplotlib.pyplot as plt %matplotlib inline
und Zeile hinzufügen
neben df.plot () und es hat gut funktioniert für
quelle
%matplotlib inline
(dies ist kein Standard-Python, das in einem Skript verwendet werden kann).%matplotlib inline
wird in ipython / jupyter notebook verwendet ...Die anderen Antworten beinhalten das
matplotlib.pyplot
manuelle Importieren und / oder Aufrufen einer zweiten Funktion.Stattdessen können Sie konfigurieren ,
matplotlib
um in seine interaktiven Modus mit seinen Konfigurationsdateien .Fügen Sie einfach die Zeile hinzu
interactive: True
zu einer Datei, die
matplotlibrc
an einer der folgenden Stellen aufgerufen wird :matplotlib.get_configdir()
/home/username/.config/matplotlib/
C:\\Documents and Settings\\username\\.matplotlib\\
quelle