【发布时间】:2011-07-07 21:01:28
【问题描述】:
嘿, 我有一组频率和功率谱值,我必须在对数刻度上绘制功率谱与频率。完成后,我需要将最合适的直线通过它。我得到线性比例的线。但是当我尝试将它叠加到频率功率谱图上时,结果图没有显示任何线,相反,第一个图的数据点只是在空间上移动。 此外,如果使用 loglog 函数在对数刻度上绘制同一行,则不会显示。
谁能告诉我我应该怎么做才能使这条线达到对数刻度?
所以我有一个包含三列的文件;频率,功率规格。电源信号..这是我为绘制数据和线而写的一段..
#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)
【问题讨论】:
-
您需要在问题中包含一些代码,展示您正在尝试的内容。
标签: python numpy matplotlib curve-fitting