Overlaying a grid on graphics to guide placement
- To: mathgroup at smc.vnet.net
- Subject: [mg73785] Overlaying a grid on graphics to guide placement
- From: "Michael A. Gilchrist" <mikeg at utk.edu>
- Date: Wed, 28 Feb 2007 04:36:40 -0500 (EST)
Hi,
I'd like to develop a function which overlays a grid on a graphics such as
a plot to help with the placement of additional graphics object through
things like Epilog or Prolog.
I've taken a stab at it below,
(*construction of grid*)
imax = jmax = 4;
step = 0.25;
hlines =
Table[{If[j == 0., Black, LightGray],
Line[{{-imax, j}, {imax, j}}]}, {j, -jmax, jmax, step}];
vlines =
Table[{If[j == 0., Black, LightGray],
Line[{{ j, -imax}, {j, imax}}]}, {j, -jmax, jmax, step}];
hlabels = Table[Text[j, {j, 0}, {1, 1.1}], {j, -jmax, jmax, 1}];
vlabels = Table[Text[j, {0, j}, {1.1, 1}], {j, -jmax, jmax, 1}];
grid = Join[hlines, vlines, hlabels, vlabels];
(* ooh it looks good on its own*)
Show[Graphics[grid]]
(*not so good here*)
LogLogPlot[Exp[-x + 1], {x, 0, 1},
Epilog -> grid]
Plot[Exp[-x + 1], {x, 0, 1},
Epilog -> grid]
Show[GraphicsArray[{
{LogLogPlot[Exp[-x + 1], {x, 0, 1},
DisplayFunction -> Identity]},
{Plot[Exp[-x + 1], {x, 0, 1},
DisplayFunction -> Identity]}}], Epilog -> grid]
If you run these commands you'll see that my attempt is inelegant and it
doesn't work very well. Ideally, the grid would (a) adjust itself so that
its boundaries are within the graphics object and (b) adjust the spacing
and labeling so that the grid lines are frequent enough to be informative
but not obscure the entire figure.
If any one has any suggestions I'd greatly appreciate hearing them.
Thanks in advance.
Mike
-----------------------------------------------------
Department of Ecology & Evolutionary Biology
569 Dabney Hall
University of Tennessee
Knoxville, TN 37996-1610
phone:(865) 974-6453
fax: (865) 974-6042
web: http://eeb.bio.utk.edu/gilchrist.asp
-----------------------------------------------------