Re: Plot function at specific points
- To: mathgroup at smc.vnet.net
- Subject: [mg114156] Re: Plot function at specific points
- From: "Carl K. Woll" <carlw at wolfram.com>
- Date: Thu, 25 Nov 2010 05:59:20 -0500 (EST)
On 11/24/2010 6:00 AM, Istv=E1n Zachar wrote: > Dear Bob, > > sadly, the variable 'data' is not available for me, only the > InterpolationFunction, that was initially created for a multitude of > coordinates. Perhaps you can use the following to extract this 'data': In[53]:== if==Interpolation[{{1,2},{2,4},{3,6},{4,9}}] Out[53]== InterpolatingFunction[{{1,4}},<>] In[54]:== if["Coordinates"] Out[54]== {{1,2,3,4}} In[55]:== if["Grid"] Out[55]== {{1},{2},{3},{4}} In[56]:== if["ValuesOnGrid"] Out[56]== {2,4,6,9} Carl Woll Wolfram Research > 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 >> >> >>