Re: Dynamic 2D ListLinePlot PlotRange

• To: mathgroup at smc.vnet.net
• Subject: [mg98280] Re: Dynamic 2D ListLinePlot PlotRange
• From: DrMajorBob <btreat1 at austin.rr.com>
• Date: Sun, 5 Apr 2009 06:34:19 -0400 (EDT)
• References: <200904030935.EAA11550@smc.vnet.net>

```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
> 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

```

• Prev by Date: Re: Joust in Mathematica
• Next by Date: Re: StringJoin with ToString
• Previous by thread: Re: Dynamic 2D ListLinePlot PlotRange
• Next by thread: Re: Dynamic 2D ListLinePlot PlotRange