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関数は labels 引数も受け入れるため、これも機能することに注意してください。

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