Matplotlib#

Bis zu diesem Punkt haben wir die Simulationsergebnisse v.a. als String in der Konsole anzeigen lassen. Nun ist es Zeit diese behelfsmäßige Form der grafischen Darstellung hinter uns zu lassen und endlich eine richtige Form der grafischen Darstellung zu erlernen. Denn nicht alle Simulationen lassen sich so einfach darstellen wie z.B. da NaSch-Modell. Und spätestens, wenn es zur systematischen Auswertung von Simulationsexperimenten kommt - also dem Vergleich vieler Modelle mit unterschiedlichen Parameter-Einstellungen - sind richtige Diagramme unverzichtbar. Sie sind später unser Hauptwerkzeug der Analyse. In diesem Kapitel lernen wir daher das Paket Matplotlib kennen.

Matplotlib ist DAS Standard-Paket zur Erstellung von Grafiken und Animationen in Python, um das man in Python nicht drumherum kommt. Matplotlib gehört in Python zwar nicht zu den aller neusten Grafik-Paketen zur Erstellung von fancy Hochglanz-Diagrammen. Es ist eher ein altbewährtes, funktionierendes, wissenschaftliches Werkzeug, das aufgrund seiner Zuverlässigkeit z.B. auch in aktuellen NASA-Missionen eingesetzt wird, wie man in diesem Video sieht.

Alternativen zu Matplotlib

Neben Matplotlib existieren eine Reihe anderer Grafik-Pakete in Python, welche sich zur Erstellung von schönen Diagrammen eignen. Wenn es darum geht, große Datensätze mit mehreren Variablen grafisch auszuwerten, dann bieten viele alternative Pakete oft auch eine einfachere Bedinung als Matplotlib auf. Zu empfehlen ist z.B. das Paket Seaborn oder auch das Paket Altair. Plotnine ist vor allem für Personen super, die Erfahrung mit R haben und nicht mehr ohne ggplot2-Grafiken leben können.

Um mit Matplotlib Grafiken erstellen zu können, gibt es zwei verschiedene Bedinungsarten von Matplotlib: das sogenannte funktionale Interface und das sogenannte objektorientierte Interface. Das funktionale Interface eignet sich v.a. für das schnelle und unkomplzierte plotten, ist jedoch in der Funktionalität etwas eingeschränkt. Das objektorientierte Interface ist etwas flexibler, man braucht jedoch etwas mehr Hintergrundwissen über die Funktionsweise von Matplotlib und der Code wird evtl. auch 1 bis 2 Zeilen länger. Wir schauen uns im Folgenden beide Formen nacheinander an. Die objektorientierte Form der Bedinung von Matplotlib brauchen wir später v.a. auch für das Erstellen von Animationen.

Matplotlib installieren#

Um Matplotlib nutzen zu können, muss es sowohl in deiner genutzten Anaconda-Umgebung installiert als auch in die aktuelle Python-Sitzung importiert sein. Falls du Python in der “base”- bzw. “root”-Umgebung von Anaconda nutzt, dann sollte Matplotlib bereits installiert sein. Falls du jedoch eine neue Umgebung für diesen Kurs angelegt hast, dann musst du vermutlich Matplotlib noch installieren.

Eine Möglichkeit, Matplotlib in deiner Anaconda-Umgebung zu installieren, findest du im Folgenden:

  1. Öffne den Anaconda-Navigator.

  2. Klicke auf “Environments”

  3. Wähle deine Umgebung aus.

  4. Stelle ein, dass du alle in Anaconda verfügbaren Pakete siehst.

  5. Suche nach dem Paket “matplotlib”

  6. Setze den Haken bei “matplotlib” und drücke auf “apply”

Wenn das Paket installiert ist, sollte nun der Import in die aktuelle Python-Sitzung z.B. in Spyder möglich sein.

Matplotlib / Pyplot importieren#

Wenn wir mit Matplotlib arbeiten, dann verwenden wir genaugenommen nur ein Modul aus dem großen Paket Matplotlib. Dieses Modul heißt Pyplot. Der Import des Moduls Pyplot sieht daher zunächst so aus:

import matplotlib.pyplot

Es hat sich allerdings eingebürgert bei der Verwendung von Pyplot dieses mit plt abzukürzen. Daher hängen wir noch ein as plt an das import matplotlib.pyplot an, um pyplot im Code mit plt abkürzen zu können:

import matplotlib.pyplot as plt