Re: Overlaying a grid on graphics to guide placement
- To: mathgroup at smc.vnet.net
- Subject: [mg73826] [mg73826] Re: [mg73785] Overlaying a grid on graphics to guide placement
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Fri, 2 Mar 2007 06:12:31 -0500 (EST)
- Reply-to: hanlonr at cox.net
If I understand what you want, I would still use GridLines.
Needs["Graphics`"];
SetOptions[#,PlotStyle->Red,Frame->True,Axes->False,
PlotRange->{Automatic,{0.95,3.05}}]&/@
{Plot,LogLogPlot,LogLinearPlot};
DisplayTogetherArray[{
{LogLogPlot[Exp[-x+1],{x,0,1},
GridLines->Automatic],
LogLogPlot[Exp[-x+1],{x,0,1},
GridLines->{Table[10^-n,{n,0,5}],
Table[y,{y,1,3,.5}]}]},
{LogLinearPlot[Exp[-x+1],{x,0,1},
GridLines->Automatic],
LogLinearPlot[Exp[-x+1],{x,0,1},
GridLines->{Table[10^-n,{n,0,5}],Automatic}]},
{Plot[Exp[-x+1],{x,0,1},
GridLines->Automatic]}},
ImageSize->800,
Frame->True, FrameTicks->Automatic,
GridLines->Automatic,
Epilog->Text["TEXT", {1.5,0.25}]];
Bob Hanlon
---- Bob Hanlon <hanlonr at cox.net> wrote:
> You could use the GridLines option.
>
> Needs["Graphics`"];
>
> SetOptions[#,PlotStyle->Red,Frame->True,Axes->False,
> PlotRange->{Automatic,{0.95,3.05}}]&/@
> {Plot,LogLogPlot,LogLinearPlot};
>
> DisplayTogetherArray[{
> {LogLogPlot[Exp[-x+1],{x,0,1},
> GridLines->Automatic],
> LogLogPlot[Exp[-x+1],{x,0,1},
> GridLines->{Table[10^-n,{n,0,5}],
> Table[y,{y,1,3,.5}]}]},
> {LogLinearPlot[Exp[-x+1],{x,0,1},
> GridLines->Automatic],
> LogLinearPlot[Exp[-x+1],{x,0,1},
> GridLines->{Table[10^-n,{n,0,5}],Automatic}]},
> {Plot[Exp[-x+1],{x,0,1},
> GridLines->Automatic]}},
> ImageSize->800];
>
>
> Bob Hanlon
>
> ---- "Michael A. Gilchrist" <mikeg at utk.edu> wrote:
> > 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