MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Overlaying a grid on graphics to guide placement

  • To: mathgroup at
  • Subject: [mg73785] Overlaying a grid on graphics to guide placement
  • From: "Michael A. Gilchrist" <mikeg at>
  • Date: Wed, 28 Feb 2007 04:36:40 -0500 (EST)


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*)

(*not so good here*)
LogLogPlot[Exp[-x + 1], {x, 0, 1},
   Epilog -> grid]

Plot[Exp[-x + 1], {x, 0, 1},
   Epilog -> grid]

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


Department of Ecology & Evolutionary Biology
569 Dabney Hall
University of Tennessee
Knoxville, TN 37996-1610

phone:(865) 974-6453
fax:  (865) 974-6042


  • Prev by Date: Re: Why is 1 smaller than 0?
  • Next by Date: Re: all the possible minors of a matrix
  • Previous by thread: Numerical integration
  • Next by thread: Unexpected Integrate::idiv : (Warning message)