3.4. Allgemeine Ploteinstellungen#

3.4.1. Bibliothek einladen und Beispieldaten#

Bibliotheken die man verwenden möchte muss man immer wieder einladen. In unserem Fall ist dies erstmal numpy (für Daten) und matplotlib (zum plotten)

import numpy as np
import matplotlib.pyplot as plt

Als Beispieldaten verwenden wir erneut die Daten aus unserer Kraftmessung

Weg = np.array([0,10,20,30,40])
Kraft_Probe1 = np.array([10,18,24,28,30])
Kraft_Probe2 = np.array([0,10,20,30,40])

3.4.2. Datei speichern#

mit plt.savefig('Dateiname.png', bbox_inches='tight', dpi=150)

  • bbox_inches='tight' sorgt dafür das die Beschriftungen immer mit im Bild gespeichert werden (können sonst manchmal abgeschnitten sein)

  • dpi regelt die Größe des Pixelbildes und damit wie scharf es ist (dots per inch)

plt.plot(Weg,Kraft_Probe1,marker="s",label="Probe1");
plt.plot(Weg,Kraft_Probe2,marker="s",label="Probe2");
plt.legend()
plt.xlabel("Weg [mm]");
plt.ylabel("Kraft [N]");
plt.savefig('plot_1.png', bbox_inches='tight', dpi=150)

3.4.3. Bildgröße#

muss vor plt.plot() kommen

plt.figure(figsize=(8,5)) … Größe in inces in x,y-Richtung (Default: 6,4)

plt.figure(figsize=(8,5))
plt.plot(Weg,Kraft_Probe1,marker="s",label="Probe1");
plt.plot(Weg,Kraft_Probe2,marker="s",label="Probe2");
plt.legend()
plt.xlabel("Weg [mm]");
plt.ylabel("Kraft [N]");

3.4.4. Schriftart und Schriftgröße#

muss vor plt.plot() kommen

  • Schriftgröße: plt.rcParams.update({'font.size': 20})

  • Schriftart: plt.rcParams['font.family'] = 'STIXGeneral'
    STIXGeneral = LaTeX Schrift

plt.rcParams.update({'font.size': 20})
plt.rcParams['font.family'] = 'STIXGeneral'
plt.plot(Weg,Kraft_Probe1,marker="s",label="Probe1");
plt.plot(Weg,Kraft_Probe2,marker="s",label="Probe2");
plt.legend()
plt.xlabel("Weg [mm]");
plt.ylabel("Kraft [N]");

3.4.5. Stile (zurücksetzen und Stilarten)#

Führen wir nun erneut den plot ohne die Befehle für Schriftgröße und Schriftart aus, stellen wir fest, dass diese Einstellungen trotzdem weiterhin da sind

plt.plot(Weg,Kraft_Probe1,marker="s",label="Probe1");
plt.plot(Weg,Kraft_Probe2,marker="s",label="Probe2");
plt.legend()
plt.xlabel("Weg [mm]");
plt.ylabel("Kraft [N]");

Um diese zurückzusetzen kann man den Befehl plt.style.use('default') verwenden

plt.style.use('default')

plt.plot(Weg,Kraft_Probe1,marker="s",label="Probe1");
plt.plot(Weg,Kraft_Probe2,marker="s",label="Probe2");
plt.legend()
plt.xlabel("Weg [mm]");
plt.ylabel("Kraft [N]");

Mit dem Befehl plt.style.use() kann man nicht nur mit default die Standardeinstellungen herstellen, man kann auch verschiedene Stiltypen verwenden.
Die Liste aller Stiltypen erhält man mit plt.style.available

plt.style.available

Um zu schauen wie alle stile aussehen verwenden wir eine for Schleife in der wir über alle Stile in der Liste plt.style.available iterrieren.

for style in plt.style.available:
    plt.figure(figsize=(6,4))
    plt.style.use(style) # style aus Liste verwenden
    plt.title(style) # style in Titel verwenden
    plt.plot(Weg,Kraft_Probe1,marker="s",label="Probe1");
    plt.plot(Weg,Kraft_Probe2,marker="s",label="Probe2");
    plt.legend()
    plt.xlabel("Weg [mm]");
    plt.ylabel("Kraft [N]");
    plt.show() # darstellen des plots (sonst werden alle Figures weiterhin im Speicher geöffnet)

3.4.6. Gitter#

plt.grid() für ein Gitter hinzu

plt.style.use('default')

plt.plot(Weg,Kraft_Probe1,marker="s",label="Probe1");
plt.plot(Weg,Kraft_Probe2,marker="s",label="Probe2");
plt.legend()
plt.grid()
plt.xlabel("Weg [mm]");
plt.ylabel("Kraft [N]");

3.4.7. Linien, Punkte (Marker) & Farben#

Übersicht über alle Stile (matplotlib Cheat Sheet)

Marker (Datenpunkte) in plt.plot()

  • Markertyp: plt.plot(marker="s") (Beispiele: . , o , s , p , x , * , … )

  • Markergrößer: plt.plot(ms=2) (ms = markersize) ( default: 6 für plt.style.use('default') )

Linien in plt.plot()

  • Liniendicke: plt.plot(lw=2) (lw = linewidth)

  • Linienstil: plt.plot(ls="--") (ls = linestyle) (Beispiele: - , : , - , -.)

Farben + Deckkraft (Linien + Marker) in plt.plot()

  • Farbe: plt.plot(c="red") (c = color)

  • Deckkraft: plt.plot(alpha=0.5") (0.25 = 25% Deckkraft = 75% Durchsichtig)

plt.style.use('default')

plt.plot(Weg,Kraft_Probe1,label="Probe1",marker="s",ms=8,ls="--",lw=2,c="red");
plt.plot(Weg,Kraft_Probe2,label="Probe2",marker="o",ms=4,ls="-",lw=1,c="blue");
plt.legend()
plt.grid()
plt.xlabel("Weg [mm]");
plt.ylabel("Kraft [N]");

3.4.8. Wertebereiche (x,y - Achse)#

mit plt.xlim() und plt.ylim() werden die Wertebereiche gesetzt:

Beispiele:

  • plt.xlim(0,20) - Wertebereiche von 0 bis 20

  • plt.xlim(10,) - Wertebereiche von 10 bis Stamdardwert

  • plt.xlim(,20) - Wertebereiche von Stamdardwert bis 20

Wir stellen nun die x-Achse so ein, dass Sie nur von 0 bis 20 angezeigt wird:

plt.style.use('default')

plt.plot(Weg,Kraft_Probe1,marker="s",label="Probe1");
plt.plot(Weg,Kraft_Probe2,marker="s",label="Probe2");
plt.legend()
plt.grid()
plt.xlim(0,20)
plt.xlabel("Weg [mm]");
plt.ylabel("Kraft [N]");

Die y-Achse hat sich nicht geändert, dies müssen wir entsprechend mit plt.ylim() vornehmen

plt.style.use('default')

plt.plot(Weg,Kraft_Probe1,marker="s",label="Probe1");
plt.plot(Weg,Kraft_Probe2,marker="s",label="Probe2");
plt.legend()
plt.grid()
plt.xlim(0,20)
plt.ylim(0,25)
plt.xlabel("Weg [mm]");
plt.ylabel("Kraft [N]");

3.4.9. Legende#

mit plt.legend() wird die Legende angezeigt, wobei die Bezeichnung im jeweiligen über label ( plt.plot(label=””) ) realisiert wird

weitere Einstellungen für die Legende:

Position der Legende mit loc: z.B. upper right

  • horizontal+vertikal: lower / center / upper + left / center / right

  • Zentrum: center

  • automatisch: best

Legende außerhalb mit bbox_to_anchor=(x, y)

Legende horizontal mit ncol=2 (für zwei Einträge)

weiterführendes Material:

plt.style.use('default')

plt.plot(Weg,Kraft_Probe1,marker="s",label="Probe1");
plt.plot(Weg,Kraft_Probe2,marker="s",label="Probe2");
plt.legend(loc="lower center",bbox_to_anchor=(0.5, 1.0) ,ncol=2)
plt.grid()
plt.xlabel("Weg [mm]");
plt.ylabel("Kraft [N]");