Help is on the way [Off Topic]

posted by Helmut Homepage – Vienna, Austria, 2022-04-25 00:24 (957 d 13:59 ago) – Posting: # 22937
Views: 7,506

Hi ElMaestro,

❝ hot greetings from Ahmedabad.


Hope you enjoy it. ;-)

The problem with your code is that rect() does not – and can not – ‘know’ how wide text() will be.

A workaround:

foo2 <- function(name, h, w, values, loc, cex, lgd) {
  pdf(name, height = 4, width = 3)
  barplot(values, las = 1)
  legend(loc, legend = lgd,
         cex = cex,     # trial & error
         x.intersp = 0, # otherwise, we have a left margin
         trace = TRUE)  # shows user coordinates in the console
  dev.off()
}
name <- "foopdf2.pdf"
foo2(name = name, h = 4, w = 3,
     values = c(8, 2, 3, 3, 1, 2, 3, 1, 9),
     loc = "center", cex = 0.85,
     lgd = c("Text is ok.", "Text is also ok."))
system2("open", args = name, wait = TRUE)


With the additional argument plot = FALSE you could assign all what is needed to a variable:
Then generate a rectangle which is large enough to contain the text. However, using legend() directly (eventually with x, y coordinates) is much simpler. See the examples at the end of the man page of legend.

Dif-tor heh smusma 🖖🏼 Довге життя Україна! [image]
Helmut Schütz
[image]

The quality of responses received is directly proportional to the quality of the question asked. 🚮
Science Quotes

Complete thread:

UA Flag
Activity
 Admin contact
23,335 posts in 4,901 threads, 1,670 registered users;
32 visitors (0 registered, 32 guests [including 6 identified bots]).
Forum time: 13:24 CET (Europe/Vienna)

There are many questions which fools can ask
that wise men cannot answer.    George Pólya

The Bioequivalence and Bioavailability Forum is hosted by
BEBAC Ing. Helmut Schütz
HTML5