Welche Art der Darstellung wird empfohlen: Matplotlib oder Pylab? [geschlossen]

86

Ich sehe, dass ich in Python entweder plotten kann :

import matplotlib
matplotlib.pyplot.plot(...)

Oder:

import pylab
pylab.plot(...)

Beide verwenden denselben Matplotlib-Plotcode .

Welche davon empfehlen die Matplotlib-Entwickler / -Dokumente derzeit als bessere Methode zum Plotten? Warum?

Ashwin Nanjappa
quelle
1
Mögliches Duplikat von Was ist der Unterschied zwischen Pylab und Pyplot?
Tacaswell
9
Selbstreferenzielle Vervielfältigung?
Mad Physicist
4
Dies sollte nicht als meinungsbasiert geschlossen werden. Es gibt jetzt eine klare Antwort aus den Matplotlib-Dokumenten: Immer verwendenmatplotlib.pyplot
Bernhard

Antworten:

103

Offizielle Dokumente: Matplotlib, Pyplot und Pylab: Wie hängen sie zusammen?

Beide Importe machen genau das Gleiche und führen genau den gleichen Code aus. Es handelt sich lediglich um verschiedene Arten des Imports der Module.

Beachten Sie auch, dass matplotlibzwei Schnittstellenebenen vorhanden sind, eine von einer verwalteten Zustandsmaschinenebene pyplotund die OO-Schnittstelle pyplot, auf der aufgebaut ist. Siehe Wie kann ich einer Figureninstanz eine Pyplot-Funktion hinzufügen?

pylabist eine saubere Methode, um eine ganze Reihe hilfreicher Funktionen (die pyplotmeisten der Zustandsmaschinenfunktionen numpy) in einem einzigen Namensraum zu importieren . Der Hauptgrund dafür besteht (nach meinem Verständnis) ipythondarin, eine sehr schöne interaktive Shell zu erstellen, die MATLAB mehr oder weniger repliziert (um den Übergang zu erleichtern und um herumzuspielen). Siehe pylab.pyundmatplotlib/pylab.py

In gewisser Hinsicht ist dies eine reine Geschmackssache und hängt ein wenig davon ab, was Sie tun.

Wenn Sie nicht in eine GUI einbetten (entweder mit einem nicht interaktiven Backend für Bulk-Skripte oder mit einem der bereitgestellten interaktiven Backends), ist dies die typische Vorgehensweise

import matplotlib.pyplot as plt
import numpy as np

plt.plot(....)

was den Namensraum nicht verschmutzt. Ich bevorzuge dies, damit ich verfolgen kann, woher die Sachen kamen.

Wenn du benutzt

ipython --pylab

Dies entspricht dem Laufen

from pylab import * 

Es wird jetzt empfohlen, diese für neue Versionen von ipythonIhnen zu verwenden

ipython --matplotlib

Dadurch werden alle richtigen Hintergrunddetails eingerichtet, damit die interaktiven Backends einwandfrei funktionieren, es wird jedoch kein Massenimport durchgeführt. Sie müssen die gewünschten Module explizit importieren.

import numpy as np
import matplotlib.pyplot as plt

ist ein guter Anfang.

Wenn Sie matplotlibin eine GUI einbetten, möchten Sie kein Pyplot importieren, da dadurch zusätzliche GUI-Hauptschleifen gestartet werden. Was genau Sie importieren sollten, hängt davon ab, was Sie genau tun.

Tacaswell
quelle
19
Der Unterschied zwischen Pylab und Pyplot besteht darin, dass der erstere Numpy in seinen Namespace importiert. Dies sollte dazu führen, dass es sich bei matlab ähnlicher verhält. Die Verwendung von Pyplot anstelle von Pylab wird jetzt bevorzugt, da es sauberer ist.
Christian Alis
8

In der Dokumentation unter https://matplotlib.org/faq/usage_faq.html#matplotlib-pyplot-and-pylab-how-are-they-related , in der auch der Unterschied zwischen Pyglot und Pylab beschrieben wird, heißt es: "Obwohl viele Beispiele verwendet werden Pylab, es wird nicht mehr empfohlen. " . Ich sehe also keinen Grund, Pylab zu verwenden oder mir darüber Sorgen zu machen.

Apostolos
quelle
1
Dies sollte die akzeptierte Antwort sein. Die "offizielle" Dokumentation ist die Quelle, und es heißt, Pylab wird nicht mehr empfohlen.
Dturvene