周波数とパワー スペクトルの値のセットがあり、対数スケールでパワー スペクトルと周波数をプロットする必要があります。完了したら、最適な直線を通過させる必要があります.線形スケールで線を取得します..しかし、それを周波数パワースペクトルプロットに重ね合わせようとすると、結果のプロットには線が表示されません.代わりに、最初のプロットのデータ ポイントは単に空間的にシフトされます。また、loglog 関数を使用して対数スケールでプロットした場合、同じ線は表示されません。
対数スケールで線を引くために何をすべきか教えてもらえますか?
SO 私は 3 つの列を持つファイルを持っています。周波数、電力仕様。電力信号..これは、データと線をプロットするために私が書いたものの一部です..
#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)