HOWTO · Matplotlib

So zeigst du das Pyplot-Gitternetz in Matplotlib

Füge einem Matplotlib-Diagramm mit grid() ein Gitternetz hinzu, passe seine Farbe und seinen Linienstil an und wähle vertikale oder horizontale Gitternetzlinien.

Auf dieser Seite

Rufe grid() für ein Matplotlib-Diagramm vor show() auf, um Gitternetzlinien anzuzeigen. Farbe, Linienstil und Breite lassen sich einstellen; mit dem Parameter axis kannst du vertikale Linien, horizontale Linien oder beide Richtungen anzeigen. Die folgenden Beispiele beginnen mit einem Liniendiagramm, fügen dann ein Gitternetz hinzu und passen es an, bevor sie die verfügbaren Richtungen vergleichen.

Ein einfaches Diagramm in Matplotlib zeichnen

Beginne mit x- und y-Werten und übergib sie anschließend an plot(). Die Beschriftungen machen die Achsen verständlich. In den folgenden Beispielen wird dasselbe Diagramm verwendet, damit du die Änderungen am Gitternetz vergleichen kannst. Jeder x-Wert gehört zum y-Wert an derselben Position; zusammen beschreiben die Listen also eine Folge von Punkten. plot() verbindet diese Punkte der Reihe nach. Titel und Beschriftungen sind optional, helfen aber dabei, die dargestellten Werte einzuordnen, wenn du die Daten für dein eigenes Diagramm anpasst. An dieser Stelle zeigen die Achsen die Linie und ihre Teilstriche; über dem Diagrammbereich ist noch kein Gitternetz eingezeichnet. Die Titel und Achsenbeschriftungen in den unveränderten Beispielen bleiben auf Englisch.

from matplotlib import pyplot as plt

x = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110]
y = [200, 300, 300, 350, 380, 450, 500, 500, 520, 525, 530]

plt.title("My Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.plot(x, y)
plt.show()

Normal Plot Without Grid in Matplotlib

grid() auf ein Diagramm in Matplotlib anwenden

Rufe pyplot.grid() nach dem Zeichnen der Daten und vor show() auf. Dadurch wird das Gitternetz für die aktuellen Achsen aktiviert; du musst das Diagramm dafür nicht erst anzeigen. In diesem pyplot-Beispiel zeichnet plot() die Linie auf den aktiven Achsen, und grid() schaltet deren Gitternetzlinien ein. Wenn beide Aufrufe vor show() stehen, kann Matplotlib die fertige Abbildung in einem Schritt darstellen. Hast du bereits ein Diagramm erstellt, setze den Aufruf von grid() nach die Zeichenbefehle und vor den Anzeigeaufruf; Daten und Beschriftungen musst du nicht erneut anlegen. Das Gitternetz orientiert sich an den Teilstrichpositionen der Achsen. So lassen sich Werte anhand der Linie leichter abschätzen, ohne die dargestellten Daten zu verändern.

from matplotlib import pyplot as plt

x = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110]
y = [200, 300, 300, 350, 380, 450, 500, 500, 520, 525, 530]

plt.title("My Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.plot(x, y)
plt.grid()
plt.show()

Simple Grid in Matplotlib

Gitterattribute in Matplotlib ändern

Übergib grid() Optionen zur Gestaltung. Mit color="r" wählst du beispielsweise Rot, linestyle="dotted" zeichnet gepunktete Linien und linewidth=1 legt eine dünne Linie fest. Der Wert für linewidth kann eine Zahl, auch eine Fließkommazahl, sein. Die kurzen Farbcodes und Linienstilnamen unten sind gängige Beispiele, aber keine vollständige Liste. Du kannst diese Schlüsselwortargumente in einem Aufruf kombinieren und so das Gitternetz anpassen, ohne die Liniendaten oder das Diagramm selbst zu ändern. Ein helleres oder dünneres Gitternetz kann die Datenlinie hervorheben; eine kontrastierende Farbe macht die Orientierungslinien leichter erkennbar. Wähle Werte, die sich deutlich von den Achsen und anderen Datenreihen in der Abbildung abheben.

from matplotlib import pyplot as plt

x = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110]
y = [200, 300, 300, 350, 380, 450, 500, 500, 520, 525, 530]

plt.title("My Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.plot(x, y)
plt.grid(color="r", linestyle="dotted", linewidth=1)
plt.show()

Grid Attributes in Matplotlib

Zu den gebräuchlichen einbuchstabigen Farbcodes gehören b (Blau), g (Grün), r (Rot), c (Cyan), m (Magenta), y (Gelb), k (Schwarz) und w (Weiß). Übliche Linienstile sind - oder solid, -- oder dashed, -. oder dashdot sowie : oder dotted. linewidth steuert die Linienstärke unabhängig von Farbe und Muster und akzeptiert Zahlenwerte wie 0.5 oder 1.5. Das Beispiel verwendet rote, gepunktete Linien mit der Breite eins. Matplotlib unterstützt außerdem benannte Farben und weitere Linienstilformen. In der verlinkten API-Referenz findest du konkrete Optionen und weitere Informationen zu den unterstützten Werten.

Vertikale oder horizontale Linien zeichnen

Mit dem Parameter axis bestimmst du die Richtung des Gitternetzes: axis="x" zeichnet vertikale Gitternetzlinien an den x-Achsenpositionen, axis="y" horizontale Linien an den y-Achsenpositionen und axis="both" Linien in beiden Richtungen. both ist die Standardeinstellung. Das Beispiel stellt die drei Einstellungen zum Vergleich nebeneinander. Die Bezeichnungen richten sich nach der Achse, deren Teilstriche das Gitternetz bestimmen: x-Teilstriche liegen am unteren und oberen Rand des Diagramms, daher verlaufen die zugehörigen Linien vertikal. y-Teilstriche liegen an den Seiten, daher verlaufen ihre Gitternetzlinien horizontal. Verwende axis="x", wenn vertikale Orientierungslinien hilfreich sind, etwa um Werte an mehreren x-Positionen zu vergleichen. Mit axis="y" kannst du Höhen im Diagramm vergleichen. Wenn beide Koordinaten ablesbar sein sollen, verwende die Standardeinstellung oder schreibe axis="both". Jedes Teilbild besitzt ein eigenes Axes-Objekt. Die Schleife wendet daher auf jedes Feld eine Einstellung an und verwendet dabei dieselben Daten erneut.

import matplotlib.pyplot as plt

x = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110]
y = [200, 300, 300, 350, 380, 450, 500, 500, 520, 525, 530]

_, (horizontal, vertical, both) = plt.subplots(1, 3)

for axis, setting in ((horizontal, "y"), (vertical, "x"), (both, "both")):
    axis.plot(x, y)
    axis.grid(axis=setting, linestyle="dotted", color="b")
    axis.set_title(f'axis="{setting}"')

plt.show()

X-axis Y-axis Grid in Matplotlib