Funktion plotten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
dchingi
User
Beiträge: 8
Registriert: Mittwoch 26. Oktober 2016, 13:33

Hallo zusammen,
ich versuche mich gerade ein an Python heran zu tasten und verstehe folgendes nicht.
Wenn ich diesen Ausdruck plotte, spuckt mir Python einen Graph aus.

Code: Alles auswählen

t = np.arange(0, 6, 0.1)
a = 2
tau = 1
t0 = 1
x = 1 + a * np.exp(-1*(t-t0)/tau)
plt.plot(x)
Wenn ich aber das ganze in einer Funktion darstellen will, dann passiert nichts:

Code: Alles auswählen

t = np.arange(0, 6, 0.1)
def p1(t, a = 2, tau = 1, t0 = 1):
    return 1 + a * np.exp(1*(t-t0)/tau)
plt.plot()
Kann mir jemand sagen woran das liegt? Wäre es außerdem besser wenn ich anstatt des "return" auch wieder "x=1 + a * np.exp(1*(t-t0)/tau)" schreibe (Am Ergebnis ändert das nichts)? Wie ihr sehen könnt, ich bin noch ein ziemlicher Anfänger. Ich bin für jede Hilfestellugn dankbar.
BlackJack

@dchingi: Im ersten Beispiel sagst Du `plot()` in der letzten Zeile was geplottet werden soll ­— x. Und das wird dann auch geplottet.

Im zweiten Beispiel sagst Du `plot()` in der letzten Zeile was geplottet werden soll — *nichts*. Und das wird dann auch geplottet. ;-)

Zur Frage nach dem ``return`` beziehunsgweise Funktionen allgemein: Arbeite am besten mal ein Grundlagentutorial durch. In der Python-Dokumentation ist beispielsweise eines. Sich zusammenraten wie Programmiersprachen funktionieren könnten, funktioniert in der Regel nicht.
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

Schau Dir das mal an

Code: Alles auswählen

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3,3,601)
y = x**2

plt.plot(x,y)
plt.show()
6 Zeilen um diesen Plot zu erzeugen:
Bild
Das Beispiel ist von
http://www.magben.de/?h1=mathematik_fue ... 2=parabel1
a fool with a tool is still a fool, www.magben.de, YouTube
dchingi
User
Beiträge: 8
Registriert: Mittwoch 26. Oktober 2016, 13:33

Vielen Dank für die Ratschläge und Hilfestellungen.
@BlackJack: Ja, werde ich zusätzlich zu meinem bisherigen "learning by doing" Ansatz tun. Ich habe auch schon viel gelesen und mir so manches Youtube Video angesehen. Wenn man dann die Sachen mitmacht, klappt das auch ganz gut und ich kann das auch immer nachvollziehen. Nur wenn man dann selbständig etwas zu programmieren versucht, stoße ich schnell an meine Grenzen.
Antworten