Hey,
ich bin neu hier und auch in python ein Neuling.Ich muss für die Schule ein Programm schreiben mit dem ich so meine Probleme habe.Aus der Strahlenformel von Max Planck sollen unter verschiedenen Temperaturen die einzelnen Graphen dargestellt werden. Ich habe mich an dem Programm schon lange versucht doch es klappt einfach nicht. Kann mir jemand sagen wo dass Problem liegt? Er stellt mir meine Graphen nicht da, warum?
Danke schon mal im vorraus,
hier mein Programm
import numpy as np
import pylab as plt
from math import e
from matplotlib.pyplot import legend, xlim, ylim
lam = np.linspace (0,10*e-6,10000)
def lamda(x,T):
-->lam = np.linspace (0,10*e-6,10000)
-->c1=0.374e-15
-->c2=1.439e-2
-->return ((c1/(x**5))*(1/(np.exp(c2/x*T))-1))
for t in (300,400,600,800,1000):
-->plt.plot(lam*1e6, lamda(lam,t))
legend()
xlim(0, 10)
ylim(0, 14000)
plt.xlabel('Wellenlaenge(muekrometer)')
plt.ylabel('Spektrale Energieflussdichte(W/m^2muekrometer)')
plt.title('Planck')
plt.show()
Pylab, plotten
Hallo und willkommen im Forum!
Schau dir noch einmal die Argumente von "plot" an. Die Funktion ertwartet als Parameter eine Liste von x-Koordinaten und eine Liste von y-Koordinaten.
Es heißt übrigens lambda und nicht lamda.
Und editiere deinen Code doch noch einmal und setze Code-Tags. Dann sparst du dir auch deine seltsamen Einrückungspfeile Über die Qualität des Codes sag ich mal nichts.
Sebastian
Schau dir noch einmal die Argumente von "plot" an. Die Funktion ertwartet als Parameter eine Liste von x-Koordinaten und eine Liste von y-Koordinaten.
Es heißt übrigens lambda und nicht lamda.
Und editiere deinen Code doch noch einmal und setze Code-Tags. Dann sparst du dir auch deine seltsamen Einrückungspfeile Über die Qualität des Codes sag ich mal nichts.
Sebastian
Zuletzt geändert von EyDu am Donnerstag 15. April 2010, 18:16, insgesamt 1-mal geändert.
Das Leben ist wie ein Tennisball.
Hallo und Willkommen,
es gibt Codetags, die du verwenden solltest.
Beim Überfliegen ist mir aufgefallen, dass du lambda verwenden willst, was ein keyword in Python ist und daher so nicht als name verwendet werden kann. lamda ist dann nicht besser, sondern lambda_
es gibt Codetags, die du verwenden solltest.
Beim Überfliegen ist mir aufgefallen, dass du lambda verwenden willst, was ein keyword in Python ist und daher so nicht als name verwendet werden kann. lamda ist dann nicht besser, sondern lambda_
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
danke für eure schnellen Antworten. Das mit lamda werde ich sofort ändern.
Doch was meint ihr mit code-tags?? Könnt ihr mir nicht präzise tipps geben??
Wäre echt nett. Ich steh ziemlich auf dem schlauch und komm nicht weiter.
danke
Doch was meint ihr mit code-tags?? Könnt ihr mir nicht präzise tipps geben??
Wäre echt nett. Ich steh ziemlich auf dem schlauch und komm nicht weiter.
danke
das hier: [ code=python ] [/code]
Es gibt einen Button, auf dem Python steht. Der macht das für dich
Es gibt einen Button, auf dem Python steht. Der macht das für dich
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
- Weniger als 10.000 Datenpunkte in ``linspace`` reichen auch. Und verwende nicht 10*e-4, sondern 10e-4.
- Schreibe die Planck-Formel am besten mit lambda und verwende weniger Klammern. Die Formel ist bei dir übrigens falsch:
- Matplotlib unterstüzt Latex. Anstelle von 'muekrometer' schreibe bitte r'$\mu$.
- Die siehst vermutlich nichts, weil mit xlim(0,10) und ylim() der Bereich zu groß ist und weil die Formel falsch ist.
Grüße
Gerrit
- Schreibe die Planck-Formel am besten mit lambda und verwende weniger Klammern. Die Formel ist bei dir übrigens falsch:
Code: Alles auswählen
B = lambda x,T: 0.37e-15/x**5 / ...
- Die siehst vermutlich nichts, weil mit xlim(0,10) und ylim() der Bereich zu groß ist und weil die Formel falsch ist.
Grüße
Gerrit
Zuletzt geändert von gkuhl am Donnerstag 15. April 2010, 18:42, insgesamt 1-mal geändert.
Code: Alles auswählen
import numpy as np
import pylab as plt
from math import e
from matplotlib.pyplot import legend, xlim, ylim
lam = np.linspace (0,10*e-6,10000)
def planc(x,T):
lam = np.linspace (0,10*e-6,10000)
c1=0.374e-15
c2=1.439e-2
return ((c1/(x**5))*(1/(np.exp(c2/x*T))-1))
for t in (300,400,600,800,1000):
plt.plot(lam*1e6, planc(lam,t))
legend()
xlim(0, 10)
ylim(0, 14000)
plt.xlabel('Wellenlaenge(muekrometer)')
plt.ylabel('Spektrale Energieflussdichte(W/m^2muekrometer)')
plt.title('Planck')
plt.show()
habt ihr so gemeint??[/code]
Ja, das ist die besagte Funktion.
plt für pylab finde ich etwas komisch, da kein t in pylab vorkommt.
plt für pylab finde ich etwas komisch, da kein t in pylab vorkommt.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Hab ichs jetzt richtig??
Funktioniert leider immer noch nicht
Funktioniert leider immer noch nicht
Code: Alles auswählen
import numpy as np
import pylab as py
from math import e
from matplotlib.pyplot import legend, xlim, ylim
lam = np.linspace (0,10e-6,1000)
c1=0.374e-15
c2=1.439e-2
B = lambda x,T : (c1/(x**5)*1)/(np.exp(c2/x*T))-1
for t in (300,400,600,800,1000):
py.plot(lam*1e6, B(lam,t))
legend()
py.xlabel('Wellenlaenge($\mu$m)')
py.ylabel('Spektrale Energieflussdichte(W/$\mu$m^2)')
py.title('Planck')
py.show()
Dann ist es wohl auch nicht richtig, aber du näherst dich.basti! hat geschrieben:Hab ichs jetzt richtig??
Funktioniert leider immer noch nicht
- Das Planck-Gesetz ist jetzt "noch weniger" richtig. Schau doch nochmal genau hin.
- Warum steht da ein ``1e6`` in Zeile 17.
Statt `py` lieber `lab`, aber sind die 5 Buchstaben so schlimm?
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Oder:
Da kommt die Abkürzung auch eigentlich her.
Code: Alles auswählen
import matplotlib.pyplot as plt
-
- User
- Beiträge: 79
- Registriert: Montag 12. Oktober 2009, 11:50
plt nutze ich auch immer, steht im Kopf fuer Plot. Finde ich recht eingaengig.