Re: two y-axis
- To: mathgroup at smc.vnet.net
 - Subject: [mg27307] Re: [mg27288] two y-axis
 - From: bernd at bio.vu.nl (Bernd Brandt)
 - Date: Tue, 20 Feb 2001 03:05:16 -0500 (EST)
 - Sender: owner-wri-mathgroup at wolfram.com
 
I would like to thank everyone for the help on plotting 2 functions on
different y-axes.
Especially, Bob Hanlon for providing the function to automatically do this.
The function works excellently.
Thanks!
Bernd
> This revision uses a different scaling mechanism to handle a broader class of 
> problems
> 
> plotTwo[{leftAxisPlot_, rightAxisPlot_}, iter_, opts___]:=
>     Module[{pltL, pltR, ytckL, ytckR, maxL, minL, maxR, minR, f},
>       pltL = Plot[leftAxisPlot, iter, opts, DisplayFunction -> Identity];
>       pltR = Plot[rightAxisPlot, iter, opts, DisplayFunction -> Identity];
>       ytckL = (Ticks /. AbsoluteOptions[pltL])[[2]];
>       ytckR = (Ticks /. AbsoluteOptions[pltR])[[2]];
>       maxL = Max[Transpose[ytckL][[1]]]; minL = Min[Transpose[ytckL][[1]]]; 
>       maxR = Max[Transpose[ytckR][[1]]]; minR = Min[Transpose[ytckR][[1]]];
>       f[y_] := (y-minR)*(maxL-minL)/(maxR-minR) + minL;
>       Plot[{leftAxisPlot, f[rightAxisPlot]}, iter,
>         Evaluate[
>           Flatten[{Frame -> True, Axes -> False,
>               FrameTicks -> {Automatic, Automatic, Automatic,
>                   ytckR /. {(y__)?NumericQ, z__} :> {f[y], z}},
>               opts}]]]];
> 
> red = RGBColor[1, 0, 0];  blue = RGBColor[0, 0, 1]; 
> 
> The scaling mechanism was modified to handle plots with different offsets 
> such as
> 
> plotTwo[{5+Sin[x], 5*Cos[x]}, {x, 0, 2Pi}, PlotStyle -> {blue,red},
>     ImageSize -> {500,325}];
> 
> Bob Hanlon
>