Как напечатать греческие буквы по диагонали парного графика в R?

Я хочу создать график пар в R, который имеет метки по диагонали, написанные греческими буквами. Я попытался создать пользовательский текст.функция панели, которая обертывает метки в expression() вызова, но это не работает.

вот простой тестовый пример:

pairs.greek <- function(x, ...)
{
  panel.txt <- function(x, y, labels, cex, font, ...)
  {
    lab <- labels
    text(0.5, 0.5, expression(lab), cex=cex, font=font)
  }
  pairs(x, text.panel=panel.txt)
}
dat <- data.frame(alpha=runif(10), beta=runif(10), gamma=runif(10))
pairs.greek(dat)

1 ответов


expression(lab) фактически не оценивает lab таким образом, вы в конечном итоге со всеми ярлыками lab. Вместо этого вы можете изменить эту строку на:

text(0.5, 0.5, parse(text=lab), cex=cex, font=font)

что будет делать то, что вы хотите. Обратите внимание, что pairs функция также принимает аргумент labels, поэтому это тоже будет работать:

pairs(dat, labels=c(expression(alpha), expression(beta), expression(gamma)))