6

我想在 R 中创建一个配对图,其对角线上的标签写为希腊字母。我尝试创建一个自定义 text.panel 函数,将标签包装在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)
4

1 回答 1

6

expression(lab)实际上并没有评估lab,所以你最终得到的所有标签都是lab. 相反,您可以将该行更改为:

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

这将做你想做的事。请注意,该pairs函数还接受标签参数,因此这也可以:

pairs(dat, labels=c(expression(alpha), expression(beta), expression(gamma)))
于 2009-09-05T21:54:29.710 回答