Re: framed plots with two y axes scales
- To: mathgroup at smc.vnet.net
- Subject: [mg80098] Re: framed plots with two y axes scales
- From: Bill Rowe <readnewsciv at sbcglobal.net>
- Date: Sun, 12 Aug 2007 07:22:46 -0400 (EDT)
On 8/9/07 at 5:28 AM, chris at chiasson.name (Chris Chiasson) wrote: >In the old version of Mathematica, I used David Park's Draw Graphics >package to obtain graphs with two y axes scales. I was successful in >making these graphs without the package in the new version, but my >technique involves a lot of code. Is there a cleaner way, such as >being able to specify a scaling factor between both sides? >Simple example: Height of a ball thrown straight up in a >gravitational field with some initial velocity and no drag: >plotExpr=h@t/.DSolve[m h''@t==-m >g&&h'@0==v0&&h@0==0,h,t]/.{g->9.80665,v0->10} >labelRightAxisTicks=Function[gr,With[{frameTicks=FrameTicks/. >AbsoluteOptions[gr,FrameTicks],cf=3.2808},Show[gr, >FrameTicks->Append[Drop[frameTicks,-1],{#1,If[#2=!="",SetPrecision[# >1 cf,3],""],##3}&@@@frameTicks[[2]]]]]] >Plot[Evaluate@plotExpr,{t,0,2},Frame->True,FrameLabel->{"t (s)","h >(m)",None,"h (ft)"}] labelRightAxisTicks@% >Also, I suspect a subtle error in my code because the tick marks are >not the size they should be (relative to the plot area). Your code seems overly complex to me. The following seems much less complex to me and looks like it does what you want Plot[1/2 (20 t - 9.80665 t^2), {t, 0, 2}, Frame -> True, FrameLabel -> {"t(s)", "h(m)", "", "h(ft)"}, FrameTicks -> {Automatic, Automatic, None, {.3048 #, #} & /@ Range[0, 16, 2]}] -- To reply via email subtract one hundred and four