Re: Plot function at specific points
- To: mathgroup at smc.vnet.net
- Subject: [mg114124] Re: Plot function at specific points
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Wed, 24 Nov 2010 06:59:54 -0500 (EST)
data == {{0, 1}, {1, 2}, {2, 3}, {3, 5}, {4, 8}, {5, 5}, {6, 2}, {7, 1}, {8, 1}, {9, 2}, {10, 4}}; f == Interpolation[data]; Plot[f[x], {x, 0, 10}, PlotRange -> {{0, 10}, {0, 9}}, PlotPoints -> 6, MaxRecursion -> 0] lowRes == Range[0, 10, 2]; ListLinePlot[{#, f@#} & /@ lowRes] Bob Hanlon ---- "Istv=C3=A1n Zachar" <replicatorzed at gmail.com> wrote: ========================== Dear Bob, sadly, the variable 'data' is not available for me, only the InterpolationFunction, that was initially created for a multitude of coordinates. That's why I cannot extract data directly, but has to specify a tricky "method to use for refining curves" inside Plot, i.e. the Method option. Even more sad is that NOTHING can be found about the possible values of Method in the documentation for either Plot or ParametericPlot. As it is the case usually with Method... Istvan On 2010.11.23. 13:51, Bob Hanlon wrote: > You can use InterpolationOrder to control the resolution. > > data == {{0, 1}, {1, 2}, {2, 3}, {3, 5}, > {4, 8}, {5, 5}, {6, 2}, {7, 1}, > {8, 1}, {9, 2}, {10, 4}}; > > Partition[ > Table[ > Plot[ > Interpolation[data, InterpolationOrder -> n][x], > {x, 0, 10}, > PlotRange -> {{0, 10}, {0, 9}}, > ImageSize -> 288], > {n, 0, 3}], > 2] // Grid > > lowRes == Range[0, 10, 2]; > > Show[ > ListLinePlot[{#, f@#}& /@ lowRes, > PlotStyle -> Blue], > Plot[ > Interpolation[data, InterpolationOrder -> 1][x], > {x, 0, 10}, > PlotStyle -> Red], > PlotRange -> {{0, 10}, {0, 9}}, > ImageSize -> 500, > Epilog -> {AbsolutePointSize[6], Green, > Point[data]}] > > > Bob Hanlon > > ---- "Istv=C3=A1n Zachar"<zac at freemail.hu> wrote: > > ========================== > Dear Group, > > is there a method to plot an InterpolatingFunction at specific pointr > WITHIN Plot? I am of course aware that I can use ListPlot at any time, > though for certain reasons I have to stick with Plot. The main reason > is that I have a large amount of InterpolatingFunctions which I plot > with Plot as default, though at request I have to plot the same > InterpolatingFunctions at different resolutions. PlotPoints and > MaxRecursion is no good here, since lower resolution has to use a > certain set of x-values, defined prior to plotting. Obviously I want > to use the same Plot setup for both high and low-resolution cases. > Below is a toy modell of the problem: > > f == Interpolation[{{0, 1}, {1, 2}, {2, 3}, {3, 5}, {4, 8}, {5, 5}, {6, > 2}, {7, 1}, {8, 1}, {9, 2}, {10, 4}}]; > lowRes == Range[0, 10, 2]; > Plot[f[x], {x, 0, 10}, PlotRange -> {{0, 10}, {0, 9}}] > ListLinePlot[{#, f@#}& /@ lowRes, PlotRange -> {{0, 10}, {0, 9}}] > > Again, what I want is to have a specific Plot call instead of the > ListLinePlot, but with same result as ListLinePlot. > Note that values of 'lowRes' may not correspond the exact x- > coordinates supplied to f. > > Is there a way to tell Plot explicitly the steps to use? Any idea? > > Istvan