2016-04-16 12 views
2

Ich bin noch ziemlich neu bei Python und frage mich, ob die x.y-Anweisung bedeutet, dass y ein Submodul von x ist? Und wenn ja, nicht der Befehl:Was ist der Unterschied zwischen dem Import von Matplotlib und Matplotlib.pyplot?

import matplotlib.pyplot as plt 

nur dieses bestimmte Submodul und nichts anderes importieren? Ich musste dies tun, um auf die hist-Funktion zugreifen zu können. Wie wirkt sich das auf die Module aus, die normalerweise beim Aufruf von import matplotlib as plt importiert werden? Kann ich alle Module in Matplotlib unter dem Plt-Namen zusammenbringen?

Ich bin mir bewusst, dass diese Frage zu what is the difference between importing python sub-modules from NumPy, matplotlib packages verwandt ist Aber die Antwort in dieser Frage sagt mir nicht, wenn nichts anderes in Matplotlib importiert wird und wie alle Matplotlib nur importieren, ohne sich Sorgen über Submodule weggelassen werden.

+0

Was meinen Sie, Sie können nicht die 'plot' Funktion nicht mehr nutzen? – Plasma

+0

@Plasma Nach dem Import von matplotlip.pyplot kann man plt.plot (x, y) nicht mehr benutzen (Modul nicht importiert ...?) Oder habe ich einfach etwas Dummes gemacht? – Moppentapper

+0

Also, wenn Sie sagen "Import matplotlib.pyplot as plt" 'plt.plot()' wird nicht funktionieren? Oder sagst du 'import matplotlib.pyplot' und dann' plt.plot() '? – Plasma

Antwort

0

Ich kenne keine Möglichkeit, alle Funktionen von jedem Submodul zu importieren. Es ist möglich, alle Funktionen von einem Submodul zu importieren, wie Sie es z. from matplotlib.pyplot import *.

Beachten Sie ein mögliches Problem beim Importieren jeder Funktion; Sie können importierte Funktionen überschreiben, indem Sie eigene Funktionen mit demselben Namen definieren. Z. B:

from matplotlib.pyplot import * 

def plot(): 
    print "Hello!" 

plot() 

würde Ausgang

Hello! 
+0

Das macht Sinn, also nehme ich an, dass mindestens eine Funktion in mindestens 2 Submodulen von Matplotlib definiert ist. Dann würde das Importieren alles Schatten verursachen. Interessante Sachen, jetzt ist das alles aufgebaut! – Moppentapper

3

Werfen Sie einen Blick auf diese Codebaumstruktur: matplotlib enthält eine Bibliothek mit Code, während pyplot nur eine Datei dieser Bibliothek ist.

import matplotlib 

importiert alle Dateien in diesem Repo. Zum Beispiel, es zu benutzen:

import matplotlib as mpl 
mpl.pyplot.plot(...) 

So importieren pyplot:

from matplotlib import pyplot as plt 
# or 
import matplotlib.pyplot as plt 
plt.plot(...) 

Eine Frage an Sie: Welche Konsole verwenden Sie? Ich denke, es ist Ipython-Konsole oder so?

bearbeiten:

alle importieren:

from matplotlib import * 
pyplot(...) 

Warum ich denke, man IPython verwenden? Ipython-Konsole importiert alle Module aus numpy und einigen anderen Bibliotheken standardmäßig beim Start, so dass in Ipython-Konsole können Sie einfach verwenden: sqrt, anstelle von import math; math.sqrt, etc. Matplotlib wird in Ipython standardmäßig importiert.

+0

Ja, ich verwende eine IPython-Konsole in Spyder. Und danke, das macht Sinn. Ich wundere mich immer noch (und ich habe gerade @Plasma die gleiche Frage oben gefragt), wenn es eine Möglichkeit gibt, alle Funktionen in allen Submodulen dann direkt zu importieren? Dies mag nicht unbedingt wünschenswert sein, aber es scheint mir einfacher zu sein, alles, was matplotlib enthält, einfach zu importieren und einfache Anweisungen wie "plot (x, y)" zu verwenden, zumindest für die ersten paar Monate des Lernens Python richtig – Moppentapper

+0

@Moppentapper siehe bearbeiten. – knh170

+0

Danke! Ich wusste nicht, dass IPython einige dieser Bibliotheken automatisch importiert hat, aber es erklärt ein paar Dinge, die mir bei der Verwendung aufgefallen sind! Ihre Bearbeitung funktioniert so, dass ich jetzt pyplot.plot (x, y) verwenden könnte, aber ich konnte nicht einfach in plot (x, y) eintippen. Das ist in Ordnung, dank dir und Plasma verstehe ich, was jetzt passiert! – Moppentapper

Verwandte Themen