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.