ExtraAxes for Plot[]
- To: mathgroup at smc.vnet.net
- Subject: [mg88367] ExtraAxes for Plot[]
- From: roby.nowak at gmail.com
- Date: Sat, 3 May 2008 06:15:46 -0400 (EDT)
Hello, once again due to some formatting troubles when posting. Any comments wellcome. (* pacakgae code *) BeginPackage["ExtraAxes`"] ExtraXAxes::usage="ExtraXAxes[{FromTick, ToTick, \ TickStep},{InsertStartPos,InsertEndPos},YInsertPos]"<>"\n"<> "\tGenerates an additional X-Axes with range FromTick to ToTick and step \ TickStep."<>"\n"<> "\tThe additional Axes is inserted from x: InsertStartPos to InsertEndPos at \ y: YInsertPos."<>"\n"<> "\tOptions can be passed e.g. TicksStyle\ [Rule]Directive[{Blue,Thick}]"<>"\n\ "<> "\tInclude the additional Axes by means of Epilog->ExtraXAxes[]" ExtraYAxes::usage="ExtraYAxes[{FromTick, ToTick, \ TickStep},{InsertStartPos,InsertEndPos},XInsertPos]"<>"\n"<> "\tGenerates an additional Y-Axes with range FromTick to ToTick and step \ TickStep."<>"\n"<> "\tThe additional Axes is inserted from y: InsertStartPos to InsertEndPos at \ x: XInsertPos."<>"\n"<> "\tOptions can be passed e.g. TicksStyle\ [Rule]Directive[{Blue,Thick}]"<>"\n\ "<> "\tInclude the additional Axes by means of Epilog->ExtraYAxes[]" Begin["`Private`"] ExtraXAxes[{from_,to_,step_},{xpos_,xend_},ypos_,opts_:{}]:= Graphics[{},AspectRatio->Full,ImagePadding->0,Axes- >{True,False},Sequence@\ opts, PlotRange->{{from-1/2 step,to+1/2 \ step},0{-1,1}},Ticks->{Table[i,{i,from,to,step}],None}]//Inset[#, {xpos,ypos},{\ from,0},((step (xend-xpos))/(to-from)+xend-xpos){1,1}]& ExtraYAxes[{from_,to_,step_},{ypos_,yend_},xpos_,opts_:{}]:= Graphics[{},AspectRatio->Full,ImagePadding->0,Axes- >{False,True},Sequence@\ opts, PlotRange->{0{-1,1},{from-1/2 step,to+1/2 \ step}},Ticks->{None,Table[i,{i,from,to,step}]}]//Inset[#,{xpos,ypos}, {0,from},\ ((step (yend-ypos))/(to-from)+yend-ypos){1,1}]& End[] EndPackage[] (* sample code *) Plot[{Sin[x], 2 + Cos[x]}, {x, 0 \[Pi], 3 \[Pi]}, PlotRange -> All, PlotStyle -> {Black, Blue}, Epilog -> {ExtraXAxes[{1/2 \[Pi], 3/2 \[Pi], \[Pi]/8}, {1/2 \[Pi], 3/2 \[Pi]}, 2, TicksStyle -> Directive[Darker@Magenta, Italic, Bold]], ExtraYAxes[{-150, 350, 50}, {-1.5, 3.5}, 8, {TicksStyle -> Directive[Blue, Large], AxesStyle -> Directive[Orange, Thick]}]} ]