An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20130506/f399992f/attachment.pl>
Adjust cex to fit width
2 messages · Dario Beraldi, Brian Ripley
This does depend on the unstated device. But on most devices the string width is either exactly or approximately proportional to cex. Some devices cannot scale fonts so there is a small set of available sizes: in which case you can use uniroot() to find the cex corresponding to the closest fit. Information on which sizes are available is in the device's help page, at least for devices provided by the core team.
On 06/05/2013 08:03, Dario Beraldi wrote:
Hello, I need to add some text to a plot and I would like this text to be of a given width in user coordinates. I know I can get the width of a string for a given cex using strwidth. But how can I do the other way around? How can I get the cex value that will make my string of a given width (at least approximately)? In this example I want my string to have width 50 so the 'target' cex would be 1.5, at least on my device: mytext<- 'Text to shrink or expand' text_width<- 50 pdf() plot(0, xlim= c(0, 100), ylim= c(0, 100)) strwidth(mytext, units= 'user', cex= 1) ## Too small #[1] 33.00625 strwidth(mytext, units= 'user', cex= 2) ## Too big #[1] 66.0125 strwidth(mytext, units= 'user', cex= 1.5) ## About right #[1] 49.50937 dev.off() Thanks! Dario [[alternative HTML version deleted]]
______________________________________________ R-help at 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.
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