[R] Computing line= for mtext

Frank Harrell f.harrell at vanderbilt.edu
Sat Mar 3 00:48:50 CET 2012


Thanks Elai.  axis(2) looks like a good approach.   I think the way to solve
for the pos= argument is to use:

usr <- par('usr'); plt <- par('plt')
usr[2] + (usr[2] - usr[1])/(plt[2] - plt[1]) *  (1 - plt[2])

I think pos should have only one element.

Thanks for your help,
Frank


ilai-2 wrote
> 
> On Fri, Mar 2, 2012 at 1:17 PM, Frank Harrell <f.harrell@> wrote:
>> Hi Rich and Peter,
>>
>> What I am trying to do is the right-justify a vector of numbers to the
>> right
>> of the y-axis so that the leftmost digit of all of the numbers is one
>> character to the right of the axis line.  axis() plots tick marks and
> 
> No it doesn't (not always)
> 
>> left-justifies the numbers.
> 
> For axis(4). If you really want right justify on the right hand side,
> you could use axis(2) with negative line numbers (device size
> dependent). Or you could try something like
> 
> plot(1:20)
> axis(2,at=seq(1,20,4),labels=T,tick=F,las=T,pos=c(22.25,1))
> 
> Hope this is getting there (after only 6 messages...)
> 
> Elai
> 
>>
>> Peter's idea:
>> ---------
>> Since you're setting your right margin to 5, why
>> not just
>>
>> mtext(s, side=4, las=1, at=5, adj=1, line = 5, cex=1)
>> mtext(s, side=4, las=1, at=7, adj=1, line = 5,  cex=2)
>>
>> i.e. set the line argument to the right margin?
>> ---------
>> comes close to what I'm trying to do but I haven't found out how to
>> compute
>> "line" from the maximum width over all the strings in the vector being
>> plotted vertically, and I'm not sure it scales properly for different
>> cex=.
>> strwidth(s, units='inches')/par('cin')[1] doesn't seem to be a complete
>> solution.
>>
>> Thanks
>> Frank
>>
>>
>> Richard M. Heiberger wrote
>>>
>>> Frank,
>>>
>>> this is it.  It uses Peter's idea.
>>>
>>>  plot(1:10)
>>>  axis(side=2, 1:10, las=1, line=-31.5, lwd=0)
>>>  axis(side=4, 1:10, las=1, labels=FALSE)
>>>
>>> Rich
>>>
>>>
>>> On Thu, Mar 1, 2012 at 6:52 PM, Frank Harrell <f.harrell@>wrote:
>>>
>>>> Rich's pointers deals with lattice/grid graphics.  Does anyone have a
>>>> solution for base graphics?
>>>> Thanks
>>>> Frank
>>>>
>>>> Richard M. Heiberger wrote
>>>> >
>>>> > Frank,
>>>> >
>>>> > This can be done directly with a variant of the panel.axis function.
>>>> > See function panel.axis.right in the HH package.  This was provided
>>>> for
>>>> me
>>>> > by David Winsemius in response to my query on this list in October
>>>> 2011
>>>> > https://stat.ethz.ch/pipermail/r-help/2011-October/292806.html
>>>> >
>>>> > The email thread also includes comments by Deepayan Sarkar and Paul
>>>> > Murrell.
>>>> >
>>>> > Rich
>>>> >
>>>> > On Wed, Feb 29, 2012 at 8:48 AM, Frank Harrell
>>>> <f.harrell@>wrote:
>>>> >
>>>> >> I want to right-justify a vector of numbers in the right margin of a
>>>> >> low-level plot.  For this I need to compute the line parameter to
>>>> give
>>>> to
>>>> >> mtext.  Is this the correct scalable calculation?
>>>> >>
>>>> >> par(mar=c(4,3,1,5)); plot(1:20)
>>>> >> s <- 'abcde'; w=strwidth(s, units='inches')/par('cin')[1]
>>>> >> mtext(s, side=4, las=1, at=5, adj=1, line=w-.5, cex=1)
>>>> >> mtext(s, side=4, las=1, at=7, adj=1, line=2*(w-.5), cex=2)
>>>> >>
>>>> >> Thanks
>>>> >> Frank
>>>> >>
>>>> >> -----
>>>> >> Frank Harrell
>>>> >> Department of Biostatistics, Vanderbilt University
>>>> >> --
>>>> >> View this message in context:
>>>> >>
>>>> http://r.789695.n4.nabble.com/Computing-line-for-mtext-tp4431554p4431554.html
>>>> >> Sent from the R help mailing list archive at Nabble.com.
>>>> >>
>>>> >> ______________________________________________
>>>> >> R-help@ mailing list
>>>> >> https://stat.ethz.ch/mailman/listinfo/r-help
>>>> >> PLEASE do read the posting guide
>>>> >>
>>>> http://www.R-project.org/posting-guide.html<http://www.r-project.org/posting-guide.html&gt<http://www.r-project.org/posting-guide.html&lt;http://www.r-project.org/posting-guide.html&gt>
>>>> ;
>>>> >> and provide commented, minimal, self-contained, reproducible code.
>>>> >>
>>>> >
>>>> >       [[alternative HTML version deleted]]
>>>> >
>>>> > ______________________________________________
>>>> > R-help@ mailing list
>>>> > https://stat.ethz.ch/mailman/listinfo/r-help
>>>> > PLEASE do read the posting guide
>>>> >
>>>> http://www.R-project.org/posting-guide.html<http://www.r-project.org/posting-guide.html>
>>>> > and provide commented, minimal, self-contained, reproducible code.
>>>> >
>>>>
>>>>
>>>> -----
>>>> Frank Harrell
>>>> Department of Biostatistics, Vanderbilt University
>>>> --
>>>> View this message in context:
>>>> http://r.789695.n4.nabble.com/Computing-line-for-mtext-tp4431554p4436923.html
>>>>  Sent from the R help mailing list archive at Nabble.com.
>>>>
>>>> ______________________________________________
>>>> R-help@ mailing list
>>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>>> PLEASE do read the posting guide
>>>> http://www.R-project.org/posting-guide.html<http://www.r-project.org/posting-guide.html>
>>>> and provide commented, minimal, self-contained, reproducible code.
>>>>
>>>
>>>       [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> R-help@ mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide
>>> http://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>>
>> -----
>> Frank Harrell
>> Department of Biostatistics, Vanderbilt University
>> --
>> View this message in context:
>> http://r.789695.n4.nabble.com/Computing-line-for-mtext-tp4431554p4439703.html
>> Sent from the R help mailing list archive at Nabble.com.
>>
>> ______________________________________________
>> R-help@ mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
> 
> ______________________________________________
> R-help@ mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 


-----
Frank Harrell
Department of Biostatistics, Vanderbilt University
--
View this message in context: http://r.789695.n4.nabble.com/Computing-line-for-mtext-tp4431554p4440246.html
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list