Re: Overlaying a grid on graphics to guide placement
- To: mathgroup at smc.vnet.net
- Subject: [mg73826] Re: [mg73785] Overlaying a grid on graphics to guide placement
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Thu, 1 Mar 2007 06:19:24 -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