#coding=utf-8 # diese Zeile legt die Codierung von Umlauten fest ################################################################## # script PlotBeispiel.py ''' Beispiel fuer Funktionsdarstellung mit matplotlib HILFE: Ausfuehren dieses Programms: python PROGRAMMNAME Dieses Programm ist in der Sprachversion 2 von python geschrieben. numpy-Objekte werden mit prefix "np." aufgerufen matplotlib-Objekte werden mit prefix "plt." aufgerufen .. author:: Günter Quast für den Kurs Computergestützte Datenauswertung (CgDA) ''' #-------------------------------------------------------------- import numpy as np import matplotlib.pyplot as plt def myFunction(x, p1, p2): ''' Beispiel einer Fuktionsdefinition Args: x: (numpy) Array mit unabhaengigen Variablen p1: parameter 1 p2: parameter 2 Returns: Funktionswerte vom gleichen Typ wie x ''' F = np.sin(p1*x + p2) # Berechnung der Funktionswerte return F # Rueckgabe des Ergebnisses ##### ---- main Program starts here ----- ## Ein numpy-array, das die Stuetzstellen enthaelt (np.pi ist pi=3.141..) emin, emax = 0, 2*np.pi npoints = 256 X = np.linspace(emin, emax, npoints, endpoint=True) # Plot der Funktionen, die werden hier aber noch nicht angezeigt! omega = 1. # Darstellung einer Sinus-Funktion phase = 0. Y = myFunction(X, omega, phase) plt.plot(X, Y, color="blue", label="Sinus, $\omega$="+str(omega)) # Darstellung einer Cosinus-Funktion phase = np.pi/2. Y = myFunction(X, omega, phase) plt.plot(X, Y, color="green", label="Cosinus, $\omega$="+str(omega)) # Definition der Grenzen der grafischen Ausgabe ... plt.xlim(-0.5, 6.5) # und Verschönern der Grafik: # Setze in X- und Y-Richtung ein paar Ticks (Achsenpunkte) # LaTeX-Ausdruecke koennen verwendet werden, r steht fuer "raw-string" plt.xticks([0, np.pi/2, np.pi, np.pi*2], [r'$0$', r'$\pi/2$', r'$\pi$', r'$2\pi$']) plt.yticks(np.linspace(-1, 1, 5, endpoint=True)) # Wo soll die Legende hin? (Text dazu ist in den "label" der plot-Anweisungen) plt.legend(loc='lower left') # Zeige ein Gitternetz plt.grid(True) # Zeige nun alles auf dem Bildschirm an plt.show()