[Rd] axis() ignores supplied value of argument mgp?
J. R. M. Hosking
jh910 at juno.com
Thu Aug 7 02:26:59 CEST 2008
Prof Brian Ripley wrote:
> On Sun, 3 Aug 2008, J. R. M. Hosking wrote:
>> Prof Brian Ripley wrote:
>>> What is true is that the line is set before the inline setting of mgp
>>> is processed: it all depends on what 'supplied' means, and you
>>> supplied two values.
>>> This is changed in R-patched now.
>> Thank you, that works. Here is a perhaps related issue:
>> R Help on 'axis' for argument 'line' says "The relative placing of
>> tick marks and tick labels is unchanged". But this appears not to be
>> the case when graphics parameter mgp is nonzero:
>> plot(1:4, yaxt="n")
>> axis(2, 1:2)
>> axis(2, 3:4, line=1)
>> which one (or, at least, I) would expect to place all the tick labels
>> the same distance into the margin, does not in fact do so.
> I don't think that is what it says. Setting 'line' or 'pos' temporarily
> sets mgp to zero (which is what the help implies in parts you did not
I'm afraid I read the help closely several times and did not find that
> Otherwise 'line' would just duplicate mgp.
Which is still useful functionality --- easier to supply a single value
than to change one element of a 3-element vector.
>> My interpretation is that axis() is taking mgp rather than the
>> correct mgp-mgp as the relative position of the tick mark with
> Why is it correct when you have been told 'mgp' was overridden?
That was my best attempt to interpret the phrase "relative placing of
... tick labels", given that no graphics parameter is explicitly
documented as having that meaning.
> We could explicitly say it is treated as zero for ultimate clarity.
>> respect to the axis line.
To summarize (if I now understand things correctly): when the position
of the axis line is determined by the value of mgp, then mgp is
the absolute position (number of lines into the margin) of the tick
labels; but if the position of the axis line is determined by the 'line'
or 'pos' arguments of axis(), then mgp is the relative position of
the tick labels (number of lines between the tick labels and the axis
line). If this is the intended behaviour, then certainly I think it
would be helpful if it were explicitly documented.
J. R. M. Hosking
More information about the R-devel