Re: [R] Text position in Traditional Graphics

From: Marc Schwartz <marc_schwartz_at_comcast.net>
Date: Wed 24 Jan 2007 - 22:10:23 GMT

On Wed, 2007-01-24 at 16:30 -0500, Mike Prager wrote:
> R 2.4.1 on Windows XP.
>
> Question: In traditional graphics, is it possible to find out
> the height of a line of text in units that can be used in
> arithmetic and then in calls to text()?
>
> Context: I have written a function that draws a plot and then,
> depending on whether some arguments are TRUE or FALSE, draws
> various lines of text in the plot. The text lines may be turned
> on or off individually by the user. The function uses plot() and
> several calls to text().
>
> However, I have not found a good way to adjust the Y coordinate
> of the text for lines after the first. I would like this to work
> when the graphics device (windows) is opened at (or resized to)
> a wide range of sizes. The issue is that a line of text takes
> up a smaller fraction of the total Y span of the plotting region
> as the window gets larger.
>
> It seems this can be done with grid graphics, but although I
> plan to learn grid, I am hoping that for now, I can do this work
> with traditional graphics.
>
> Thanks!

Mike, you might want to take a look at:

  ?strheight

The one thing to be potentially aware of, is if the plot window is resized, some aspects of drawing text can be subject to alteration. It may take some trial and error to determine how the method you wish to use may be prone to such problems.

For example:

 plot(1, type = "n")
 text(1, 1, "This is a test")
 text(1, 1 + strheight("T"), "This is a test")
 text(1, 1 + strheight("T") * 2, "This is a test")
 text(1, 1 + strheight("T") * 3, "This is a test")

Now, drag and resize the plot window here

Then run:

  text(1, 1 + strheight("T") * 4, "This is a test")

This may behave differently on Windows, but on Linux, when I resize the X window, the last line of text (* 4) is placed between (* 2) and (* 3).

HTH, Marc Schwartz



R-help@stat.math.ethz.ch 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. Received on Thu Jan 25 13:57:12 2007

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Thu 25 Jan 2007 - 03:30:31 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.