how to control ticks in plots with yasp or xasp
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