2012-05-10 9 views
1

データを補間し、結果をログスケール(pyplot.loglog)にプロットする必要があります。問題は、補間結果が非常に奇妙に見え、ログスケールでプロットしたときに不連続性があることです。ログスケールデータを補間する最良の方法は何ですか?ログスケールでの補間

pyplot.loglog(x, y, '+') 
pyplot.hold(True) 
s = scipy.interpolate.InterpolatedUnivariateSpline(x, y) 
xs = numpy.logspace(numpy.log10(numpy.min(x)), numpy.log10(numpy.max(x))) 
pyplot.loglog(xs, s(xs)) # This looks very strange because of the log scale! 

実は、私は、データのログを補間することでそれをやって成功しますが、同じ結果を達成するための簡単な方法があった場合、私は不思議でしたか?

pyplot.loglog(x, y, '+') 
pyplot.hold(True) 
s = scipy.interpolate.InterpolatedUnivariateSpline(numpy.log10(x), numpy.log10(y)) 
xs = numpy.logspace(numpy.log10(numpy.min(x)), numpy.log10(numpy.max(x))) 
pyplot.loglog(xs, numpy.power(10, s(numpy.log10(xs))) 

答えて

4

データの対数をとるように見えますが、フィッティングはこれを行う通常の方法です。 Fitting a Power Law Distributionを参照してください。

+0

Weel、まさに私がやったことです...しかし、リンクに感謝します。 –