Re: Tick marks at frame edges
- To: mathgroup at smc.vnet.net
- Subject: [mg32280] Re: [mg32235] Tick marks at frame edges
- From: Omega Consulting <omega_consulting at yahoo.com>
- Date: Wed, 9 Jan 2002 23:38:02 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
At 02:17 AM 1/9/2002, Jun Lin wrote:
>I tend to plot a curve, y=y(x), where x is also a function of another
>variable, t, x=x(t). So, I want to arrange this curve in a frame such
>that the lower edge of the frame is tick-marked according to t, say
>from 0 to 1, and that the upper edge of the frame is tick-marked
>according to x, say from x(t=0) to x(t=1). I am appreciating with any
>help.
>
>Jun Lin
Here's an example.
y[x_]=x^2;
x[t_]=t^2;
Do a plot where the t and y sides are labeled.
gr=Plot[y[x[t]],{t,0,1},Frame->True]
The first set of ticks are for the t side.
tticks=First[FullOptions[gr,FrameTicks]];
Labeled ticks are of the form {location, label, other stuff}. To get the
ticks for the x side, we just need to change the labels from the t side.
xticks=tticks/.{t_Real,t_Real,rest__}:>{t,x[t],rest};
Then we re-Plot with the new ticks.
Plot[y[x[t]],{t,0,1},Frame->True,
FrameTicks->{Automatic,Automatic,xticks,Automatic}]
An alternative is to keep the labels the same and move the ticks. This can
be done if you use the inverse of x[t].
xinv[t_]=Sqrt[t];
xinvticks=tticks/.{t_Real,label_,rest__}:>{xinv[t],label,rest};
Plot[y[x[t]],{t,0,1},Frame->True,
FrameTicks->{Automatic,Automatic,xinvticks,Automatic}]
--------------------------------------------------------------
Omega Consulting
"The final answer to your Mathematica needs"
Spend less time searching and more time finding.
http://www.wz.com/internet/Mathematica.html