Re: [R] how to control ticks in plots with yasp or xasp

From: Denis Chabot <chabotd_at_globetrotter.net>
Date: Sun 09 Oct 2005 - 02:17:50 EST

Hi, sorry about the bad syntax, though the right syntax would not have worked either, according to your tests (Mark, Brian, Peter).

Anyway it is too finicky, I will draw them myself. For instance,

plot(1:100, xaxt="n")
par(xaxp=c(0, 100, 10)) # the value is reset at each plot axis(1)

Placed tick marks at intervals at 0, 10, ..., 100, as expected, but did not place a label under 100...

Thanks for the answers, usufull as always,

Denis

Le 05-10-08 à 11:58, Marc Schwartz a écrit :

> 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
>
>
>



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Sun Oct 09 03:12:14 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:40:40 EST