Re: ListLogLinearPlot with two y-axis
- To: mathgroup at smc.vnet.net
- Subject: [mg102582] Re: ListLogLinearPlot with two y-axis
- From: Harutyun <amirjanyan at gmail.com>
- Date: Sat, 15 Aug 2009 05:34:14 -0400 (EDT)
- References: <h63cf6$19s$1@smc.vnet.net>
if you like overall appearance of your solution you should only
change
ListLinePlot to ListLogLinearPlot
TwoAxisListPlot[f_List, g_List, frange_, grange_, color1_, color2_,
opts___?OptionQ] :=
Module[{old, new, scale, fm, fM, gm, gM, newg}, {fm, fM} = frange;
{gm, gM} = grange;
scale[var_] := ((var - gm) (fM - fm))/(gM - gm) + fm;
old = AbsoluteOptions[
ListPlot[g, Frame -> True, PlotRange -> grange,
DisplayFunction -> Identity], FrameTicks][[1, 2, 2]];
new = (Prepend[Rest[#1], scale[First[#1]]] &) /@ old;
newg = Transpose[{Transpose[g][[1]],
Map[scale, Transpose[g][[2]], {1, 2}]}];
ListLogLinearPlot[{f, newg}, Frame -> True,
FrameTicks -> {Automatic, Automatic, None, new},
PlotStyle -> {{color1}, {color2}},
FrameStyle -> {{}, {color1}, {}, {color2}},
PlotRange -> frange*(1 + .00 (fM - fm)), opts]]