RE: multiple list plot and frameticks
- To: mathgroup at smc.vnet.net
- Subject: [mg45453] RE: [mg45427] multiple list plot and frameticks
- From: David.Annetts at csiro.au
- Date: Wed, 7 Jan 2004 17:31:20 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Hi Nathan,
> I'd like to use multiple list plot and frame ticks to generate a plot
> of log-linear data (I'm aware that LogLinearListPlot would be easier
> but that doesn't allow for plot-markers (box, triangle, star etc).
>
> At present I'm doing the following, data set
>
> flist = Table[{p, 4.Exp[-5. p]}, {p, 1, 15, 2}]
>
> then I can make a simple plot with
>
> << Graphics`Graphics`
> LinearLogListPlot[flist]
>
> But I want to plot this with other data in a B&W paper, so I need to
> use Multiple List Plot,
>
> << Graphics`MultipleListPlot`
>
> dx=Transpose[flist][[1]]
> dy=Transpose[flist][[2]]
>
> MultipleListPlot[
> Transpose[{dx,Log[dy]}],
> SymbolShape -> {PlotSymbol[Box, 2]},
> Axes->False,
> Frame->True
> ];
>
> The hang-up is that the axes are funny. I could use FrameTicks and
> LogScale/LinearScale to specify ticks, but if I do so, I see that in
> both cases LogScale and Linear Scale generate a 2-d set of axis that
> FrameTicks won't accept
>
> LinearScale[ dx[[1]], dx[[-1]] ]
> LogScale[ dy[[1]], dy[[-1]] ]
>
> So, do I have to generate my frame ticks by hand, or is there
> a clever way to generate axes of different scale.
You can generate the ticks by hand. Try
mytik = Range[-80, -3];
mytik = {#, ToString[FortranForm[Exp[#]]], {.003, 0}} & /@ mytik;
then
MultipleListPlot[Transpose[{dx, Log[dy]}], SymbolShape ->
{PlotSymbol[Box, 2]}, Axes -> False, Frame -> True,
FrameTicks -> {Automatic, mytik, None, None}
];
Not sure that this is what you intended though. You may want to try
different scalling to reduce the range. Alternatively, you can plot every
n-th label in your tick function, but this is what your original is doing
anyway.
Regards,
Dave.