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