Whoops. I spoke too soon. That last approach does not survive shrinking the
graphics window. I'll go back to the axis and par approach.
Frank
Frank Harrell wrote
>
> Thanks very much for the ideas Baptiste and Greg. I think this is a way
> to go:
>
> # Right justifies (if adj=1) a vector of
Thanks very much for the ideas Baptiste and Greg. I think this is a way to
go:
# Right justifies (if adj=1) a vector of strings against the right margin
(side=4) or against the y-axis (side=2)
outerText <-
function(string, y, side=4, cex=par('cex'), adj=1, ...) {
if(side %nin% c(2,4)) stop(
I would use the regular text function instead of mtext (remembering to
set par(xpd=...)), then use the grconvertX and grconvertY functions to
find the location to plot at (possibly adding in the results from
strwidth or stheight).
On Thu, Mar 1, 2012 at 4:52 PM, Frank Harrell wrote:
> Rich's poin
Hi,
If you're going to use different text sizes and convert between units,
it might be easier to do the calculations with grid.
par(mar=c(1,1,1,5))
plot(1:10)
labels = c(1, 2, 10, 123, 3.141592653589, 1.2, 2)
sizes = c(1, 1, 2, 1, 0.4, 1, 3) # cex of individual labels
## pure base graphics
max_w
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 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
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
left-justifies the numbers.
Peter's idea:
-
Since you
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 wrote:
> Rich's pointers deals with lattice/grid graphics. Does anyone have a
> solution for base gr
Frank,
maybe I'm not understanding something right... you say right-justify
in the right margin, meaning justify against the very right edge of
the plot margin area? 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, la
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
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 t
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
12 matches
Mail list logo