[R] Different behavior of mtext
Prof Brian Ripley
ripley at stats.ox.ac.uk
Mon Sep 3 09:27:22 CEST 2007
On Sun, 2 Sep 2007, Sébastien wrote:
> Dear R Users,
>
> I am quite surprised to see that mtext gives different results when it
> is used with 'pairs' and with "plot'. In the two following codes, it
> seems that the 'at' argument in mtext doesn't consider the same unit system.
It is stated to be in 'user coordinates'. Your code does not work because
unit() is missing. If you mean the one from package grid, "npc" is not
user coordinates (and refers to a grid viewport which you have not set up
and coincidentally is the same as the initial user coordinate system to
which pairs() has reverted).
Try par("usr") after your pairs() and plot() calls to see the difference.
Plotting a 2x2 array of plots _is_ different from plotting one, so this
should be as expected.
Since centring is the default for 'adj', it is unclear what you are trying
to achieve here.
> I would appreciate your comments on this issue.
>
> Sebastien
>
> ##### Pairs
>
> mydata<-data.frame(x=1:10,y=1:10)
>
> par(cex.main=1, cex.axis=1, cex.lab=1, lwd=1,
> mar=c(5 + 5,4,4,2)+0.1)
>
> pairs(mydata,oma=c(5 + 5,4,4,2))
>
> mylegend<-c("mylegend A","mylegend B","mylegend C","mylegend test")
> mylegend.width = strwidth(mylegend[which.max(nchar(mylegend))], "figure")
>
> for (i in 1:4) {
> mtext(text=mylegend[i],
> side = 1,
> line = 3+i,
> at = unit((1-mylegend.width)/2,"npc"), # centers the
> legend at the bottom
> adj=0,
> padj=0)}
>
> ##### plot
>
> mydata<-data.frame(x=1:10,y=1:10)
>
> par(cex.main=1, cex.axis=1, cex.lab=1, lwd=1,
> mar=c(5 + 5,4,4,2)+0.1)
>
> plot(mydata,oma=c(5 + 5,4,4,2))
>
> mylegend<-c("mylegend A","mylegend B","mylegend C","mylegend test")
> mylegend.width = strwidth(mylegend[which.max(nchar(mylegend))], "figure")
>
> for (i in 1:4) {
> mtext(text=mylegend[i],
> side = 1,
> line = 3+i,
> at = unit((1-mylegend.width)/2,"npc"), # should
> center the legend at the bottom but doesn't do it !
> adj=0,
> padj=0)}
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list