Re: Combining Plots with Different Ordinate Axes in
- To: mathgroup at smc.vnet.net
- Subject: [mg94974] Re: [mg94953] Combining Plots with Different Ordinate Axes in
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Thu, 1 Jan 2009 07:28:18 -0500 (EST)
- References: <200812311110.GAA13681@smc.vnet.net>
- Reply-to: drmajorbob at longhorns.com
In both plots you used, but didn't define, vSqueezeSeps. Did you mean vSqueezeEnergies? Bobby On Wed, 31 Dec 2008 20:38:25 -0600, Buz Barstow <buzb at mac.com> wrote: > Hi Bobby, > > Thanks a lot for your help. > > That code worked on my Mac. Unfortunately, I tried to make use of the > code with ListPlot, but couldn't get the ticks to tick marks and tick > labels to show up on the top edge of the frame. > > Here's what I tried: > > hSlideSeps = {0., 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1., 1.1, > 1.2, 1.3, 1.4, \ > 1.5, 1.6, 1.7, 1.8, 1.9} > > vSlideSeps = {2., 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3., 3.1, > 3.2, 3.3, 3.4, \ > 3.5, 3.6, 3.7, 3.8, 3.9} > > hSlideEnergies={1.933, 1.933, 1.933, 1.934, 1.934, 1.935, 1.937, 1.938, > 1.94, 1.941, 1.942, \ > 1.944, 1.946, 1.947, 1.949, 1.95, 1.951, 1.952, 1.954, 1.955} > > vSqueezeEnergies={0.99, 0.269, 0.456, 1.044, 1.186, 1.313, 1.437, 1.548, > 1.643, 1.721, 1.783, \ > 1.832, 1.87, 1.898, 1.918, 1.933, 1.943, 1.95, 1.955, 1.958} > > range1 = {0, 1.9}; > range2 = {2.0, 3.9}; > map = Interpolation[Transpose@{range1, range2}, InterpolationOrder -> 1]; > > With[ > {range3 = Flatten@{x, range1}, > top = {#, Round[map@#, 0.01]} & /@ Range[Sequence @@ range1, 0.5]}, > plot1 = ListPlot[Transpose[{vSqueezeSeps, hSlideEnergies}], Joined - > > True]; > plot2 = ListPlot[Transpose[{vSqueezeSeps, vSqueezeEnergies}], > Joined -> True]; > Show[plot2, plot1, PlotRange -> All, Axes -> False, PlotRange -> All, > Frame -> True, FrameTicks -> {{Automatic, Automatic}, {Automatic, > top}}]] > > > Am I doing something dumb? > > Thanks! and all the best, > > --Buz > > > On Dec 31, 2008, at 4:19 PM, DrMajorBob wrote: > >> For instance, >> >> range1 = {0, 1.9}; >> range2 = {2.5, 3.5}; >> map = Interpolation[Transpose@{range1, range2}, >> InterpolationOrder -> 1]; >> >> With[{range3 = Flatten@{x, range1}, >> top = {#, Round[map@#, 0.01]} & /@ Range[Sequence @@ range1, 0.5]}, >> p1 = Plot[Sin[x], range3, PlotStyle -> Red]; >> p2 = Plot[Cos[map@x], range3, PlotStyle -> Blue]; >> Show[p1, p2, PlotRange -> All, Axes -> False, PlotRange -> All, >> Frame -> True, >> FrameTicks -> {{Automatic, Automatic}, {Automatic, top}}] >> ] >> >> ?? >> >> Bobby >> >> On Wed, 31 Dec 2008 05:10:51 -0600, Buz Barstow <buzb at mac.com> wrote: >> >>> Hi All, >>> >>> I'd like to combine two plots in Mathematica that have different x >>> axes, but have similar y axes. >>> >>> In the first plot, the x range runs from 0 to 1.9, while in the second >>> plot the x values run from 2.5 to 3.5. >>> >>> I'd like to combine these plots together, and have one set of x values >>> displayed on the top edge of a frame, and the other set of x values >>> displayed on the bottom edge of the frame. >>> >>> Both plots can have a common y axis. >>> >>> Thanks! and all the best, >>> >>> --Buz >>> >>> >>> >> >> >> >> --DrMajorBob at longhorns.com > -- DrMajorBob at longhorns.com