2009-09-05 10 views
6

Quiero crear un diagrama de pares en R que tenga etiquetas en la diagonal escritas como letras griegas. Intenté crear una función text.panel personalizada que envuelva las etiquetas en una llamada expression(), pero esto no funciona.¿Cómo imprimo las letras griegas en la diagonal de un diagrama de pares en R?

Aquí es un caso de prueba sencilla:

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) 

Respuesta

5

expression(lab) en realidad no evaluar lab por lo que acabar con todas las etiquetas de ser lab. En cambio, puede cambiar esa línea a:

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

que hará lo que desee. Tenga en cuenta que la función pairs también acepta un argumento de etiquetas, por lo que esto también funcionaría:

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