Re: Dynamic 2D ListLinePlot PlotRange
- To: mathgroup at smc.vnet.net
- Subject: [mg98280] Re: [mg98228] Dynamic 2D ListLinePlot PlotRange
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Fri, 3 Apr 2009 20:14:20 -0500 (EST)
- References: <200904030935.EAA11550@smc.vnet.net>
- Reply-to: drmajorbob at bigfoot.com
You haven't explained tmin or tmax, but ignoring that, here's some sample
data and code to compute the minimum and maximum x values:
test = RandomInteger[{1, 10000}, {2, 50, 2}];
minMax = Through[{Min, Max}@Flatten[test, 1][[All, 1]]]
{52, 9885}
If you want the first element to be no less than tmin and the second to be
no more than tmax, you can do this:
{curmin, curmax} = {tmin, tmax} = Sort@RandomInteger[{1, 10000}, 2]
Apply @@@ Transpose@{{Max, Min}, Transpose@{{tmin, tmax}, minMax}}
{5877, 7951}
{5877, 7951}
or the simpler
{Max@#[[1]], Min@#[[2]]} &@Transpose@{{tmin, tmax}, minMax}
{5877, 7951}
Bobby
On Fri, 03 Apr 2009 04:35:24 -0500, Bryce Schober
<bryce.schober at dynonavionics.com> wrote:
> I'm a bit of a newbie here, trying to build up some data visualization
> tools. I've already gotten a ListLinePlot working well with slider to
> adjust
> xmin and xmax. I was hoping that I could set PlotRange to All for the Y
> axis
> and it would adjust for the Y-values in the dynamically specified x
> range,
> but no such luck. Is there some other way to not have to do the y-axis
> range
> calculation myself?
>
> I suppose some explanation of the dataset is desired. I have something
> like:
> {
> {{x11,y11},{x12,y12},{x13,y13},...,{x1m,y1m}},
> {{x21,y21},{x22,y22},{x23,y23},...,{x2n,y2n}},
> }
> , where the x values and lengths are heterogeneous between xy lists 1
> and 2
>
> This makes the calculation of ymin and ymax very non-straightforward to
> me,
> and re-calculation unacceptably slow on 20k+ data points per list. The
> dynamic x-axis plot scaling actually goes very smoothly, by using a
> construct like:
>
> Show[
> ListLinePlot[data,PlotRange -> All,],
> PlotRange ->Dynamic[{{curxmin, curxmax},All}],
> ]
>
> I've tried various ways to get at the problem, and the closest I've
> gotten
> is something like:
>
> Map[
> {Min[#], Max[#]} &,
> Map[
> (Select[
> #,
> (
> #[[1]] > tmin
> && #[[1]] < tmax
> ) &
> ]) &,
> mydata
> ][[All, All, 2]]
> ]
>
> Which get me basically the result I want, but is really slow to evaluate,
> making it undesirable as Dynamic[].
>
> Any ideas?
>
--
DrMajorBob at bigfoot.com
- References:
- Dynamic 2D ListLinePlot PlotRange
- From: Bryce Schober <bryce.schober@dynonavionics.com>
- Dynamic 2D ListLinePlot PlotRange