MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

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



  • Prev by Date: RE: multiple list plot and frameticks
  • Next by Date: Re: multiple derivatives?
  • Previous by thread: RE: multiple list plot and frameticks
  • Next by thread: For general discussion