Datenvisualisierung mit

Matplotlib

Als erstes: IPython interaktiv machen:

Um mit Matplotlib arbeiten zu können, muss die Bibliothek erst einmal importiert werden. Damit wir nicht so viel tippen müssen geben wir ihr einen kürzeren Namen:

Außerdem brauchen wir ein paar Funktion aus numpy, die euch schon bekannt sind

Ein einfaches Beispiel: $f(x)=x^2$

Anderes Beispiel: $\sin(t)$ mit verschiedenen Stilen. Vorsicht, die Funktionen und $\pi$ sind Bestandteil von numpy

Tabelle mit allen Farben und Styles: matplotlib.axes.Axes.plot

Neue Grenzen mit xlim(a, b) und ylim(a, b)

Es fehlt noch etwas...

XKCD comic on why you should label your axes.

Achsen-Beschriftungen können mit LaTeX-Code erstellt werden → LaTeX-Kurs in der nächsten Woche.

Einheiten in Achsenbeschriftungen werden wegdividiert:

Mehr zu Einheiten gibt es im LaTeX-Kurs.

Legende

Legenden für Objekte die ein label tragen

Seit matplotlib 2.0.2 ist loc=best standardmäßig eingestellt.

Andere möglche Orte für die Legende findest du hier:

https://matplotlib.org/api/legend_api.html

Gitter

Mit grid() wird ein Gitter erstellt:

Laden von Daten

Auslagern in ein Skript

Speichert den folgenden Code in eine Textdatei plot.py ab.

Öffnet ein Terminal und startet das Programm:

python plot.py

Mit savefig speichert man die Abbildung.

In diesem Fall sollte die Datei plot.pdf erstellt worden sein.

Es gibt viele Ausgabeformate: pdf, png, svg, LaTeX

Um mehrere Plots zu speichern kann man plt.clf() verwenden. Der Befehl leert die aktuelle figure und steht für clear figure.

Komplexere Abbildungen

Natürlich kann man mehrere Linien in einen Plot packen:

Es werden nur die Plots in der Legende angezeigt, die ein Label haben.

Man kann auch mehrere Plots in ein Bild packen:

Dies führt manchmal zu Spacing-Problemen und Teilen die sich überscheneiden, Lösung: plt.tight_layout()

Plot im Plot:

Plots mit Fehlerbalken

Sehr häufig werden im Praktikum Plots mit Fehlerbalken benötigt:

Achsen-Skalierung

Logarithmische (oder auch andere) Skalierung der Achsen ist auch möglich:

Polar-Plot

Manchmal braucht man einen Polarplot:

Ticks

Man kann sehr viele Sachen mit Ticks machen…

Histogramme

Sehr häufig braucht man Histogramme.

Objektorientiertes Plotten

Bis jetzt haben wir die schnelle Variante mit der pyplot-Syntax benutzt. Wenn man viele Plots anlegt, ist der objekt-orientierte Ansatz für matplotlib besser geeignet.

3D Plots

Weitere Beispiele zum 3dim Plotten findet ihr hier:

https://matplotlib.org/mpl_toolkits/mplot3d/tutorial.html

LaTeX

Es ist auch möglich LaTeX für das Setzen aller Plot-Beschriftungen (d.h. Achsenbeschriftungen, Ticks, Legenden, usw.) zu verwenden. Seht Euch dazu die "TeX in matplotlib" Folien an.