matplotlib Tutorial
Erste Schritte mit matplotlib
Suche…
Bemerkungen
Überblick
matplotlib ist eine Plot- Bibliothek für Python. Es bietet objektorientierte APIs zum Einbetten von Diagrammen in Anwendungen. Es ähnelt MATLAB in Kapazität und Syntax.
Es wurde ursprünglich von JDHunter geschrieben und wird aktiv weiterentwickelt. Es wird unter einer BSD-Style-Lizenz vertrieben.
Versionen
Ausführung | Unterstützte Python-Versionen | Bemerkungen | Veröffentlichungsdatum |
---|---|---|---|
1.3.1 | 2,6, 2,7, 3.x | Ältere stabile Version | 2013-10-10 |
1.4.3 | 2,6, 2,7, 3.x | Vorherige stabile Version | 2015-07-14 |
1.5.3 | 2,7, 3.x | Aktuelle stabile Version | 2016-01-11 |
2.x | 2,7, 3.x | Neueste Entwicklungsversion | 2016-07-25 |
Installation und Einrichtung
Es gibt verschiedene Möglichkeiten, Matplotlib zu installieren. Einige davon hängen von dem verwendeten System ab. Wenn Sie Glück haben, können Sie mit einem Paketmanager das matplotlib-Modul und seine Abhängigkeiten einfach installieren.
Windows
Auf Windows-Computern können Sie versuchen, den Pip Package Manager zur Installation von matplotlib zu verwenden. Sehen Sie hier für Informationen über pip in einer Windows - Umgebung einrichten.
OS X
Es wird empfohlen, dass Sie den pip package manager verwenden, um matplotlib zu installieren. Wenn Sie einige Nicht-Python-Bibliotheken (z. B. libfreetype
) auf Ihrem System installieren müssen, sollten Sie die Verwendung von Homebrew in Betracht ziehen.
Wenn Sie pip aus irgendeinem Grund nicht verwenden können, versuchen Sie, die Installation von der Quelle aus durchzuführen .
Linux
Idealerweise sollte der Systempaket-Manager oder pip zur Installation von matplotlib verwendet werden, entweder durch Installieren des Pakets python-matplotlib
oder durch Ausführen von pip install matplotlib
.
Wenn dies nicht möglich ist (z. B. haben Sie keine Sudo-Berechtigungen auf dem von Ihnen verwendeten Computer), können Sie die Installation mit der Option python setup.py install --user
von der Quelle aus --user
: python setup.py install --user
. Normalerweise wird matplotlib in ~/.local
installiert.
Debian / Ubuntu
sudo apt-get install python-matplotlib
Fedora / Roter Hut
sudo yum install python-matplotlib
Fehlerbehebung
Auf der matplotlib-Website finden Sie Hinweise, wie Sie eine kaputte matplotlib reparieren können.
Anpassen eines Matplotlib-Diagramms
import pylab as plt
import numpy as np
plt.style.use('ggplot')
fig = plt.figure(1)
ax = plt.gca()
# make some testing data
x = np.linspace( 0, np.pi, 1000 )
test_f = lambda x: np.sin(x)*3 + np.cos(2*x)
# plot the test data
ax.plot( x, test_f(x) , lw = 2)
# set the axis labels
ax.set_xlabel(r'$x$', fontsize=14, labelpad=10)
ax.set_ylabel(r'$f(x)$', fontsize=14, labelpad=25, rotation=0)
# set axis limits
ax.set_xlim(0,np.pi)
plt.draw()
# Customize the plot
ax.grid(1, ls='--', color='#777777', alpha=0.5, lw=1)
ax.tick_params(labelsize=12, length=0)
ax.set_axis_bgcolor('w')
# add a legend
leg = plt.legend( ['text'], loc=1 )
fr = leg.get_frame()
fr.set_facecolor('w')
fr.set_alpha(.7)
plt.draw()
Imperative versus objektorientierte Syntax
Matplotlib unterstützt sowohl die objektorientierte als auch die imperative Syntax für das Plotten. Die imperative Syntax wurde bewusst so konzipiert, dass sie der Matlab-Syntax sehr nahe kommt.
Die imperative Syntax (manchmal auch als "State-Machine" -Syntax bezeichnet) gibt eine Befehlsfolge aus, die alle auf die neueste Figur oder Achse wirken (wie Matlab). Die objektorientierte Syntax wirkt dagegen explizit auf die interessierenden Objekte (Figur, Achse usw.) ein. Ein Schlüsselpunkt im Zen von Python besagt, dass explizit besser als implizit ist, sodass die objektorientierte Syntax pythonischer ist. Die imperative Syntax eignet sich jedoch für neue Konvertierungen aus Matlab und für das Schreiben kleiner "wegwerfender" Plot-Skripts. Im Folgenden finden Sie ein Beispiel für die beiden verschiedenen Stile.
import matplotlib.pyplot as plt
import numpy as np
t = np.arange(0, 2, 0.01)
y = np.sin(4 * np.pi * t)
# Imperative syntax
plt.figure(1)
plt.clf()
plt.plot(t, y)
plt.xlabel('Time (s)')
plt.ylabel('Amplitude (V)')
plt.title('Sine Wave')
plt.grid(True)
# Object oriented syntax
fig = plt.figure(2)
fig.clf()
ax = fig.add_subplot(1,1,1)
ax.plot(t, y)
ax.set_xlabel('Time (s)')
ax.set_ylabel('Amplitude (V)')
ax.set_title('Sine Wave')
ax.grid(True)
Beide Beispiele erzeugen dieselbe Darstellung, die unten gezeigt wird.
Zweidimensionale (2D) Arrays
Zeigen Sie ein zweidimensionales (2D) Array auf den Achsen an.
import numpy as np
from matplotlib.pyplot import imshow, show, colorbar
image = np.random.rand(4,4)
imshow(image)
colorbar()
show()