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
>