Hey, J'ai un ensemble de valeurs pour la fréquence et le spectre de puissance et je dois tracer le spectre de puissance par rapport à la fréquence sur l'échelle logarithmique. Une fois cela fait, j'ai besoin de passer la meilleure ligne droite à travers celle-ci. J'ai la ligne sur une échelle linéaire .. mais quand j'essaie de la superposer sur le spectre du spectre, la courbe résultante ne montre aucune ligne, à la place, les points de données du premier tracé sont simplement décalés dans l'espace. En outre, la même ligne, si elle est tracée sur une échelle logarithmique à l'aide de la fonction loglog, n'apparaît pas. Est-ce que quelqu'un peut me dire ce que je devrais faire pour obtenir la ligne sur une échelle Log?Ajustement de courbe en python
SO J'ai un fichier ayant trois colonnes; Fréquence, Spécification de puissance. signal de puissance .. Voici un morceau de ce que je l'ai écrit pour tracer les données et la ligne ..
#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)
Vous devez inclure du code dans votre question, démontrant ce que vous essayez. – detly