Hallo, Ich habe eine Reihe von Werten für Frequenz und Leistungsspektrum und muss das Leistungsspektrum in Abhängigkeit von der Frequenz auf einer logarithmischen Skala darstellen. Wenn ich das getan habe, muss ich die beste Anpassungsgerade durch sie ziehen. Ich erhalte die Linie auf einer linearen Skala, aber wenn ich versuche, sie dem Frequenz-Leistungsspektrum-Diagramm zu überlagern, zeigt das resultierende Diagramm keine Linie, sondern die Datenpunkte des ersten Diagramms sind lediglich im Raum verschoben. Die gleiche Linie wird auch nicht angezeigt, wenn sie mit der Funktion loglog auf der logarithmischen Skala aufgetragen wird.
Kann mir jemand sagen, was ich tun muss, um die Linie auf eine Log-Skala zu bekommen?
SO habe ich eine Datei mit drei Spalten; Frequenz, Leistung spez. Leistungssignal. Hier ist ein Teil von dem, was ich geschrieben habe, um die Daten und Linien zu zeichnen.
#initialize all variables to 0
#open the data file
while 1:
ln = datafile.readline()
if ln:
data = ln.split()
x = float(n)
y = float(data[0])
z = float(data[1])
xval.append(float(n))
yval.append(y)
zval.append(z)
n += 1
sum_z += z
sum_y += y
sum_y_squared += y*y
sum_yz += y*z
else:
break
datafile.close()
# calculate slope and intercept using formulae
for num in xval:
res = intercept + slope*num
line.append(res)
#Plot data
pylab.figure(0)
matplotlib.pylab.loglog(yval,zval)
#Plot line
pylab.figure(0)
pylab.plotloglog(line)