2013-02-28 15 views

risposta

45

Qualcosa di simile a questo:

g <- ggplot(data=data.frame(x=0,y=0))+geom_point(aes(x=x,y=y)) 
g+ xlab(expression(paste("Value is ", sigma,",", R^{2},'=0.6'))) 

EDIT

Un'altra opzione è quella di utilizzare annotate con parse=T:

g+ annotate('text', x = 0, y = 0, 
     label = "Value~is~sigma~R^{2}==0.6 ",parse = TRUE,size=20) 

enter image description here

EDIT

La soluzione paste può essere utile se la costante 0 viene calcolata durante la stampa.

r2.value <- 0.90 
g+ xlab(expression(paste("Value is ", sigma,",", R^{2},'=',r2.value))) 
+2

Se si desidera che sigma tenti di utilizzare '\ u03c3' –

+0

Bad Mac? Prova con 'x = 0,25, y = 0,25'. Cancellando il mio commento errato su non aver bisogno di 'parse = TRUE'. –

+0

@DWin ok. Ottengo lo stesso comportamento con 'x = 0,25, y = 0,25'. Ma con parse = F, ottengo sigma con questo \ u03c3 ma anche con ~ – agstudy

30

Un po 'più semplice di pasta() potrebbe essere:

g <- ggplot(data=data.frame(x=0,y=0))+geom_point(aes(x=x,y=y)) 
g+ xlab(expression(Value~is~sigma~R^{2}==0.6)) 

Generalmente paste e tutti quegli apici accoppiati non sono necessari se si utilizzano i connettivi plotmath adeguate. Anche se vuoi il testo che altrimenti creerebbe una lettera greca, tutto ciò che devi fare è racchiuderlo tra virgolette con uno * o ~ su ciascun lato. Un problema con l'offerta di paste ai nuovi arrivati ​​per l'espressione plotmath è che pensano che sia lo stesso di paste nel resto della lingua.

+0

Penso che l'argomento 'etichette' per annotare prende una modalità carattere Si può cercare quale valore Unicode 'sigma' potrebbe avere nel font sans-serif che si è installato. –

+1

Nota a margine per utenti reticolari: questa soluzione funziona anche per la trama reticolare. .i.e 'xyplot (y ~ x, dat = data.frame (x = 0, y = 0), xlab = espressione (Valore ~ ​​è ~ sigma ~ R^{2} == 0,6))' – agstudy

Problemi correlati