RE: multiple list plot and frameticks
- To: mathgroup at smc.vnet.net
- Subject: [mg45447] RE: [mg45427] multiple list plot and frameticks
- From: "David Park" <djmp at earthlink.net>
- Date: Wed, 7 Jan 2004 17:31:12 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Nathan, << Graphics`Graphics` << Graphics`MultipleListPlot` flist = Table[{p, 4.Exp[-5. p]}, {p, 1, 15, 2}]; dx = Transpose[flist][[1]] dy = Transpose[flist][[2]] MultipleListPlot[Transpose[{dx, Log[10, dy]}], SymbolShape -> {PlotSymbol[Box, 2]}, Axes -> False, Frame -> True, FrameTicks -> {Automatic, LogScale, Automatic, Automatic}, ImageSize -> 450]; That works except that we would probably prefer not to have the "1. x" on all the tick labels, or the form "0.001" and the right hand tick marks do not correspond to the left hand tick marks. With DrawGraphics I was able to use CustomTicks to eliminate the problems. Needs["DrawGraphics`DrawingMaster`"] logdata = {#1, Log[10, #2]} & @@ # & /@ flist Draw2D[ {PlotSymbol[Box, 2] /@ logdata, Gray, Line[logdata]}, Frame -> True, FrameTicks -> {Automatic, CustomTicks[6Log[10, 1000#] &, {-10, 0, {1}, {}}, CTNumberFunction -> (NumberForm[N[#], ExponentFunction -> Identity, NumberFormat -> (Module[{exp = 6(ToExpression[#3] + 3)}, If[exp == 0, 1, Superscript[10, exp]]] &)] &)], Automatic, CustomTicks[6Log[10, 1000#] &, {-10, 0, {1}, {}}, CTNumberFunction -> ("" &)]}, PlotLabel -> "Log Plot With Custom Tick Marks", ImageSize -> 450]; I'll send separately a gif image of the plot. David Park djmp at earthlink.net http://home.earthlink.net/~djmp/ From: Nathan Moore [mailto:nmoore at physics.umn.edu] To: mathgroup at smc.vnet.net Hi, 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. NT Moore U of Minnesota Physics