[R] how to control ticks in plots with yasp or xasp
Marc Schwartz
MSchwartz at mn.rr.com
Sat Oct 8 17:58:49 CEST 2005
On Sat, 2005-10-08 at 16:37 +0100, Prof Brian Ripley wrote:
> On Sat, 8 Oct 2005, Marc Schwartz wrote:
>
> > On Sat, 2005-10-08 at 09:28 -0400, Denis Chabot wrote:
> >> Hi,
> >>
> >> A few times I tried to control the number and position of tick marks
> >> in plots with the yasp or xasp parameters. For example, a y axis was
> >> drawn by default with tick marks at 0, 20, 40, 80 and 100. I tried to
> >> get tick marks every 10 by adding
> >>
> >> yasp=(0, 100, 10)
> >>
> >> but this had no effect at all. I know I can draw the axis and tick
> >> marks manually, but often this simple option would suffice if I could
> >> understand how to make it work.
> >>
> >> Thanks in advance,
> >>
> >> Denis Chabot
> >
> >
> > I suspect that one problem you are having is that there is no
> > par("xasp") or par("yasp")....unless these are typos and you are trying
> > to use par("xaxp") and par("yaxp")?
>
> In any case, (0, 100, 10) is invalid syntax, and c(0, 100, 10) is needed.
Indeed.
> > There is an 'asp' argument to some of the plot functions (ie.
> > plot.default), but this has a different intention.
> >
> > par("xaxp") and par("yaxp") are not listed as read only pars in ?par,
> > however, I cannot recall an instance where R does not overwrite the user
> > settings during the calculation of the axes, whether passed as arguments
> > to a plot function or set a priori via a par() call.
>
> Really? Try
>
> > plot(1:100, xaxt="n")
> > par(xaxp=c(0, 50, 5)) # the value is reset at each plot
> > axis(1)
>
> for how it works (but not inline, which is probably a bug).
Ah....I had not thought about that 'par'ticular combination... ;-)
Hence, not R.O. So it must be used _after_ a plot call, which makes
sense.
I had reached for my copy of Paul's book and on page 96 (last paragraph
in section 3.4.5 on Axes), he suggests using the approach I elucidate
below with axTicks(). I thought he might have some other ideas and that
I was missing something. This is also referenced on page 70, third
paragraph in section 3.2.5 on Axes.
> > If you want explicit control over the tick marks, you will need to use
> > axis(), perhaps in combination with axTicks(), after using 'xaxt = "n"'
> > and/or 'yaxt = "n"' in the plot call, depending upon the circumstances.
>
> That is usually as easy.
Agreed.
Thanks,
Marc
More information about the R-help
mailing list