我想在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)
Run Code Online (Sandbox Code Playgroud)
expression(lab)实际上没有评估,lab所以你最终得到了所有的标签lab.相反,您可以将该行更改为:
text(0.5, 0.5, parse(text=lab), cex=cex, font=font)
Run Code Online (Sandbox Code Playgroud)
这将做你想要的.请注意,该pairs函数也接受标签参数,因此这也适用:
pairs(dat, labels=c(expression(alpha), expression(beta), expression(gamma)))
Run Code Online (Sandbox Code Playgroud)