Re: Changing Plot Axis Displays
- To: mathgroup at smc.vnet.net
- Subject: [mg54757] Re: [mg54694] Changing Plot Axis Displays
- From: "Christoph Lhotka" <lhotka at astro.univie.ac.at>
- Date: Tue, 1 Mar 2005 01:58:12 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
On Sun, 27 Feb 2005 01:29:19 -0500 (EST)
"plizak" <plizak at gmail.com> wrote:
>
> I have a table that I want to plot, it's a list plot
>
> A = {{.1,.2,.3,.4,.5}
> {.1,.2,.3,.4,.6}
> {.1,.2,.3,.5,.7}
> {.1,.2,.5,.6,.8} }
>
> ListPlot3D[A, AxesLabel->{"Years", "Ratings", "rates"}
>
> Q: I would like the "Ratings" axis to not be numbers 1,2,3
> and 4, but rather A, B, C, and D. Is this possible in
> mathematica?
>
> Q: Can I change the "rates" to be in Percent? i.e instead of
> having the Z axis from 0 to 0.80, could I have the Z axis
> go from 0% to 80%?
>
> Q: Can I offset the "Years" to be 5, 10, 15 and 20 as opposed
> to 1,2,3 and 4?
>
>
>
> Range, Ranges, ListPlot
>
Hi!
Use Ticks or FrameTicks as an option in the Plot - function.Tick-specification
is done for each dimension in the form: {{x1, label1},{x2,label2},...} . You
can even specify the scaled length, the direction and the style of the
tickmark if you define a list like {{x1, label1,length1, style1},{x2,label2,
length2, style2},...}. You can also use the token None or Automatic (default
value) or a function f(xmin, xmax), which creates a list of tickmarks
depending on the minum and maximum value of the data set. So according to your
questions:
A1:
In[..]:= fx[min_, max_]:=With[{valrange = Range[min, max, (max - min)/5]},
Table[{valrange[[i]], CharacterRange["A", "Z"][[i]]}, {i, 1,
Length[valrange]}]]
,will create a list of 5 tickmarks between Min[yearlist],Max[yearlist] of
your specified form:
In[..]:=fx[1,10]
Out[..]:= {{1,"A"},{2,"B"},...}
A2:
In[..]:=fy[min_, max_] := With[{valrange = Range[min, max, (max - min)/5]},
Table[{valrange[[i]], 5*i}, {i, 1, Length[valrange]}]]
,plots 5 tickmarks between Min[Ratings] and Max[Ratings]:
In[..]:=fy[1,10]
Out[..]:={{1,5},{2,10},...}
and
A3:
In[..]:=fz[min_, max_] :=
With[{valrange = Range[min, max, (max - min)/4]},
Inner[List, valrange, 100*Rescale[valrange], List]]
In[..]:=f[1,5]
Out[..]:={{1, 0.}, {2, 25.}, {3, 50.}, {4, 75.}, {5, 100.}}
plots 4 tickmarks between Min[rates] and Max[rates], where the function
//100*Rescale[valrange]// sets min to 0% and max to 100%.
In[..]:=ListPlot3D[A, AxesLabel -> {"Years", "Ratings", "rates"},
Ticks ->{fx, fy, fz}]
Out[..]...
See more examples and detailed information in the HelpBrowser...
-- Christoph Lhotka --
University of Vienna
Institute for Astronomy
Tuerkenschanzstr. 17
1180 Vienna, Austria
fon. +43.1.4277.518.41
mail. lhotka at astro.univie.ac.at