Hi, You could also pad the text labels with phantom 0s,
ghostrighter <- function(x, ...){ n <- sapply(x, nchar) nmax <- max(n) padaone <- function(ii){ si <- paste(rep("0", length= nmax - n[ii]), collapse="") as.expression(bquote(phantom(.(si)) * .(x[ii]) )) } sapply(seq_along(x), padaone) } ## ghostrighter(c(1, 23, 145)) panel.right<- function(x, y, ...) { panel.barchart(x, y, ...) print(x);print(y) panel.axis(side="right", at=pretty(y), lab=ghostrighter(pretty(y)), outside=TRUE) } mybar<- function(...) { args<- list(...) args$par.settings=list(clip=list(panel="off")) args$par.settings$layout.widths$axis.key.padding<- 4 do.call("barchart", args) } mybar(c(1,10,100,10,1) ~ "abcd", panel=panel.right, ylab.right="right") HTH, baptiste On 17 October 2011 13:12, Paul Murrell <p.murr...@auckland.ac.nz> wrote: > Hi > > On 16/10/2011 6:17 p.m., Richard M. Heiberger wrote: >> >> How can I right justify the right-axis tick values? They appear in the >> example below as left-justified. >> >> I have tried several different ways and all fail in different ways. >> >> The example below creates the right axis tick value with no attempt at >> adjustment. >> >> alternates I have tried are >> 1. formatting the values. This doesn't work because they are in a >> proportional font and the blanks >> are too narrow. >> >> 2. gsub all leading " " characters into two " " characters. This >> overcompenates because a blank >> is slightly wider than half a digit width. >> >> I prefer to keep the default font. I am willing to go to a fixed width >> font >> (courier for example), but I haven't >> figured out the incantation to make that work in graphics. >> >> here is my example: >> >> panel.right<- function(x, y, ...) { >> panel.barchart(x, y, ...) >> print(x);print(y) >> panel.axis(side="right", at=pretty(y), outside=TRUE) >> } >> mybar<- function(...) { >> args<- list(...) >> args$par.settings=list(clip=list(panel="off")) >> args$par.settings$layout.widths$axis.key.padding<- 4 >> do.call("barchart", args) >> } >> mybar(c(1,10,100,10,1) ~ "abcd", panel=panel.right, ylab.right="right") > > You could do this ... > > library(grid) > oldx <- grid.get("plot_01.ticklabels.right.panel.1.1")$x > grid.edit("plot_01.ticklabels.right.panel.1.1", > just="right", > x=oldx + stringWidth("000")) > > Paul > >> >> >> thanks >> Rich >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help@r-project.org 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. > > -- > Dr Paul Murrell > Department of Statistics > The University of Auckland > Private Bag 92019 > Auckland > New Zealand > 64 9 3737599 x85392 > p...@stat.auckland.ac.nz > http://www.stat.auckland.ac.nz/~paul/ > > ______________________________________________ > R-help@r-project.org 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@r-project.org 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.