簡體   English   中英

對數刻度上的插值

[英]Interpolation on a log scale

我想插入一些數據,並在日志范圍內繪制結果( 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)))

看起來首先采用數據的對數,然后擬合是執行此操作的常規方法。 請參閱擬合冪律分布

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM