いくつかのデータを補間し、結果を対数スケール(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)))