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()

Geben Sie hier die Bildbeschreibung ein

# 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()

Geben Sie hier die Bildbeschreibung ein

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.

Geben Sie hier die Bildbeschreibung ein

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()

Anzeige von zweidimensionalen (2D) Arrays mit Matplotlib



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow