[SciPy-User] Interpolation problem with interp1d(.)

josef.pktd@gmai... josef.pktd@gmai...
Wed Aug 29 14:46:25 CDT 2012


On Wed, Aug 29, 2012 at 3:29 PM, eat <e.antero.tammi@gmail.com> wrote:
> Hi,
>
> Apparently I'm somehow misusing the functionality of  interp1d(.) or does
> following behavior imply a bug in scipy. A minimum snippet (with plots) to
> demonstrate the problem:
> In []: from scipy.interpolate import interp1d
> In []: n= 1000
> In []: x, y= randn(n), linspace(0, 1, n)
> In []: x.sort()
> In []: plot(x, y, lw= 2)
> Out[]: [<matplotlib.lines.Line2D object at 0x12E190D0>]
>
> In []: f= interp1d(x, y, 'cubic')
> In []: xi= linspace(x.min(), x.max(), n)
> In []: plot(xi, f(xi))
> Out[]: [<matplotlib.lines.Line2D object at 0x12E20830>]


I guess, some x's are too close to each other to fit a cubic
interpolation without a lot of overshooting.

Reversing x and y looks fine.

Using the splines directly and add a small s>0 might also work.

Josef

>
> Regards,
> -eat
>
> _______________________________________________
> SciPy-User mailing list
> SciPy-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
>


More information about the SciPy-User mailing list