2 improve readability by breaking the line edited Nov 8 '12 at 23:10 Sasha 6,7182727 silver badges4545 bronze badges It seems that interpolation in two dimensions is desired. To do so, interpolate the x- and y-coordinates separately and plot the curve parametrically: Manipulate[ Module[{f = Interpolation[#, InterpolationOrder -> iorder] & /@ Transpose[Prepend[pts, {0, 0}]]}, ParametricPlot[Through[f[x]], {x, 1, Length[pts]+1}, PlotRange -> {Full, Full}]], {{pts, {{.2, .1}, {.4, .2}, {.6, .3}, {.8, .25}, {1, 0}}}, Locator}, {{iorder, 3, "InterpolationOrder"}, Range[3]}]  Now it does not matter that some of the x-coordinates may have been duplicated. It seems that interpolation in two dimensions is desired. To do so, interpolate the x- and y-coordinates separately and plot the curve parametrically: Manipulate[ Module[{f = Interpolation[#, InterpolationOrder -> iorder] & /@ Transpose[Prepend[pts, {0, 0}]]}, ParametricPlot[Through[f[x]], {x, 1, Length[pts]+1}, PlotRange -> {Full, Full}]], {{pts, {{.2, .1}, {.4, .2}, {.6, .3}, {.8, .25}, {1, 0}}}, Locator}, {{iorder, 3, "InterpolationOrder"}, Range[3]}]  Now it does not matter that some of the x-coordinates may have been duplicated. It seems that interpolation in two dimensions is desired. To do so, interpolate the x- and y-coordinates separately and plot the curve parametrically: Manipulate[ Module[{f = Interpolation[#, InterpolationOrder -> iorder] & /@ Transpose[Prepend[pts, {0, 0}]]}, ParametricPlot[Through[f[x]], {x, 1, Length[pts]+1}, PlotRange -> {Full, Full}]], {{pts, {{.2, .1}, {.4, .2}, {.6, .3}, {.8, .25}, {1, 0}}}, Locator}, {{iorder, 3, "InterpolationOrder"}, Range[3]}]  Now it does not matter that some of the x-coordinates may have been duplicated. 1 answered Nov 8 '12 at 22:34 whuber 19.5k22 gold badges4848 silver badges107107 bronze badges It seems that interpolation in two dimensions is desired. To do so, interpolate the x- and y-coordinates separately and plot the curve parametrically: Manipulate[ Module[{f = Interpolation[#, InterpolationOrder -> iorder] & /@ Transpose[Prepend[pts, {0, 0}]]}, ParametricPlot[Through[f[x]], {x, 1, Length[pts]+1}, PlotRange -> {Full, Full}]], {{pts, {{.2, .1}, {.4, .2}, {.6, .3}, {.8, .25}, {1, 0}}}, Locator}, {{iorder, 3, "InterpolationOrder"}, Range[3]}]  Now it does not matter that some of the x-coordinates may have been duplicated.