 
 
 
 
 
 
Re: He said DisplayTogetherArray, but ...
- To: mathgroup at smc.vnet.net
- Subject: [mg43163] Re: He said DisplayTogetherArray, but ...
- From: "Allan Hayes" <hay at haystack.demon.co.uk>
- Date: Fri, 15 Aug 2003 04:27:09 -0400 (EDT)
- References: <bh26jl$hp5$1@smc.vnet.net> <200308120843.EAA20927@smc.vnet.net> <bhd8qq$rm3$1@smc.vnet.net> <bhfkie$6bn$1@smc.vnet.net>
- Reply-to: "Allan Hayes" <hay at haystack.demon.co.uk>
- Sender: owner-wri-mathgroup at wolfram.com
Paul,
The reason that
  DisplayTogetherArray[
      Partition[
        Graphics[{Hue[#],Rectangle[{0, 0}, {1, 1}]},
           AspectRatio -> Automatic] & /@ Range[0, 0.9, 0.1], 3
       ]
  ];
but the following does
   DisplayTogetherArray[
     Evaluate[
       Partition[
         Graphics[{Hue[#],Rectangle[{0, 0}, {1, 1}]},
           AspectRatio -> Automatic] & /@ Range[0, 0.9, 0.1], 3
       ]
     ]
   ];
is that DisplayTogetherArray is HoldAll and in the code we have
DisplayTogetherArray[plots__, opts : (_Rule | _RuleDelayed) ...] :=
Show[GraphicsArray[suppressdisplay[{plots}]], opts,
FilterOptions[{DisplayFunction}, Options[DisplayTogether]]]
This gives an extra {..} round the the partioned list. With Evaluate
DisplayTogetherArray sees that it is getting a list and so uses
DisplayTogetherArray[plotarray_List, opts : (_Rule | _RuleDelayed) ...] :=
Show[GraphicsArray[suppressdisplay[plotarray]], opts,
FilterOptions[{DisplayFunction}, Options[DisplayTogether]]]
Noting this mecahnism, we see that the following also works
DisplayTogetherArray[
     Sequence@@
       Partition[
         Graphics[{Hue[#],Rectangle[{0, 0}, {1, 1}]},
           AspectRatio -> Automatic] & /@ Range[0, 0.9, 0.1], 3
     ]
   ];
And this is preferable in
DisplayTogetherArray[
Sequence @@ Table[Plot[x, {x, 0, 1}], {2}, {3}]]
since using Evaluate displays the intermediate plots.
Allan
---------------
Allan Hayes
hay at haystack.demon.co.uk
Voice: +44 (0)116 241 8747
Fax: +44 (0)870 164 0565
"Paul Abbott" <paul at physics.uwa.edu.au> wrote in message
news:bhfkie$6bn$1 at smc.vnet.net...
> In article <bhd8qq$rm3$1 at smc.vnet.net>,
>  Murray Eisenberg <murray at math.umass.edu> wrote:
>
> > How is DisplayTogetherArray different here -- at least in what is
> > displayed -- from a simple Show (wrapped around the GraphicsArray
> > expression, of course)?
>
> You are correct:
>
>   Show[
>     GraphicsArray[
>       Partition[
>         Graphics[{Hue[#], Rectangle[{0, 0},{1, 1}]},
>           AspectRatio -> Automatic] & /@ Range[0, 0.9, 0.1], 3
>       ]
>     ]
>   ];
>
> works fine and, in this case, there are no intermediate graphics to
> suppress.
>
> > Note, also, that the documentation for DisplayTogetherArray says:
> >
> >    DisplayTogetherArray[plotcommands, opts] takes a sequence of
> >    plot commands ...and combines them to produce a GraphicsArray
> >    of the plots.
> >
> > That documentation would seem to suggest that the GraphicsArray is _not_
> > required!  (Although, in fact, that is not the case!)
>
> The documentation is slightly misleading. For example
>
>   DisplayTogetherArray[
>     {
>      {Plot[Sin[x], {x, 0, 3}], Plot[Sin[x], {x, 0, 3}]},
>      {Plot[Sin[x], {x, 0, 3}]}
>     }
>   ];
>
> works fine. (Note that this would be different with Show and
> GraphicsArray).
>
> For the problem under consideration here, an Evaluate is required:
>
>   DisplayTogetherArray[
>     Evaluate[
>       Partition[
>         Graphics[{Hue[#],Rectangle[{0, 0}, {1, 1}]},
>           AspectRatio -> Automatic] & /@ Range[0, 0.9, 0.1], 3
>       ]
>     ]
>   ];
>
> Cheers,
> Paul
>
> --
> Paul Abbott                                   Phone: +61 8 9380 2734
> School of Physics, M013                         Fax: +61 8 9380 1014
> The University of Western Australia      (CRICOS Provider No 00126G)
> 35 Stirling Highway
> Crawley WA 6009                      mailto:paul at physics.uwa.edu.au
> AUSTRALIA                            http://physics.uwa.edu.au/~paul
>
- References:
- Re: He said DisplayTogetherArray, but ...
- From: Paul Abbott <paul@physics.uwa.edu.au>
 
 
- Re: He said DisplayTogetherArray, but ...

