Python Skript fehlerhaft

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
lisaalaa
User
Beiträge: 5
Registriert: Freitag 11. Mai 2018, 17:50

Hallo zusammen,

Ich hoffe ich werde nicht direkt für meine "blöden" fragen zerfleischt, aber ich bin ein Vollblut-Anfänger.
Ich versuche mich gerade an ein Skript für Python, immer wieder ohne Erfolg.
Ich will einen Versuch auswerten, und zunächst erstmal meine Messwerte ganz einfach plotten. Und genau da scheitert es schon, weil ich nur y-Werte habe. Meine x-Werte will ich mit einem Befehl ganz einfach von 1 bis 8000 laufen lassen, aber selbst das bekomme ich schon nicht hin. :|

Ich habe vor ein paar Monaten mit Python angefangen, und da hat es eigentlich auch geklappt "einfache" Messwerte zu plotten. Jetzt habe ich aber eine große Pause dazwischen gehabt und fange quasi wieder von vorne an. Und mein Skript was ich meistens nur immer etwas auf die jeweiligen Versuche anpassen musste klappt jetzt auch nicht mehr.

Mein Skript sieht so aus:

import numpy as np
import sympy
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
from pylab import figure, axes, pie, title, show

######Messwerte plotten

#print('char.')
y = np.loadtxt('152EU.txt', unpack=True,delimiter=',')

def f(x,x_0,a,b,c):
return a+b*exp(-((x-x_0)/c)^2)
popt, pcov = curve_fit(f, x, y)
print(popt)
print(pcov)

plt.axis [0,8000]

#x_new = np.linspace(x[0], x[-1], 500)
#x_0 = y_max
plt.figure(1)
#y_err=np.sqrt(y)
#plt.errorbar(x, y, yerr=y_err, fmt='.')
plt.plot(x,y,'o',label='Messwerte')
#plt.plot(x_new,f(x_new,*popt),'-', label='Ausgleichsgerade')
plt.ylabel('Counts')
plt.xlabel('Kanalnummer')
plt.grid()
plt.legend()

plt.savefig('152EU.pdf')
plt.close


print ('Fertig')

und wenn ich das bei python durchlaufen lassen möchte, sagt er mir das :

> python calc.py
Traceback (most recent call last):
File "calc.py", line 10, in <module>
y = np.loadtxt('152EU.txt', unpack=True,delimiter=',')
File "C:\Users\Lande\Anaconda3\lib\site-packages\numpy\lib\npyio.py", line 1092, in loadtxt
for x in read_data(_loadtxt_chunksize):
File "C:\Users\Lande\Anaconda3\lib\site-packages\numpy\lib\npyio.py", line 1019, in read_data
items = [conv(val) for (conv, val) in zip(converters, vals)]
File "C:\Users\Lande\Anaconda3\lib\site-packages\numpy\lib\npyio.py", line 1019, in <listcomp>
items = [conv(val) for (conv, val) in zip(converters, vals)]
File "C:\Users\Lande\Anaconda3\lib\site-packages\numpy\lib\npyio.py", line 738, in floatconv
return float(x)
ValueError: could not convert string to float: '"""'



ich hoffe jmd kann mir helfen. Wie gesagt ich habe nur y-Werte ich möchte die x-Achse selbst skalieren.

VIelen Dank im Voraus.
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

In der Datei '152EU.txt' hat es irgendwelche Zellen, die sich nicht als Zahl interpretieren lassen, zum Beispiel eine Titelzeile.

Ist diese Hürde gemeistert, hakt es 4 Zeilen tiefer daran, dass `x` nicht definiert ist. Dann wieder 4 Zeilen tiefer, das `plt.axis` keinen Indexzugriff kennt.
Antworten