2012-04-02 17 views
5

Possiedo un vettore di stringhe, ad esempio c("E^A","S^P","lambda","T","E^Q","E^Q","AT") e desidero stamparle come etichetta dell'asse x utilizzando l'espressione matematica. (Credo che le ho scritte in formato un'espressione matematica, ma con quote)come convertire la stringa in espressione matematica in R?

Quando ho messo

text(x,par("usr")[3]-0.2,labels=substitute(A,list(A=label)),srt=20,pos=1,adj = c(1.1,1.1), xpd = TRUE,cex=0.7)

L'asse x mostra solo "E^A", "S^P"," lambda "," T "," E^Q "," E^Q "," AT ", non l'interpretazione matematica delle stringhe, e immagino sia perché non sono considerati come simboli matematici.

Come posso ottenere l'etichettatura matematica, quindi? Grazie mille!

+0

uso l'espressione() – aatrujillob

+0

'expression' così come' as.expression' non può convertire il carattere in espressione. – kohske

+0

Se vuoi ottenere queste espressioni sull'asse x, hai guardato all'asse? – BenBarnes

risposta

7

In generale, utilizzare expression (vedi ?plotMath):

plot(1,main=expression(E^A)) 

Si noti che il 'E^A' è non tra virgolette.

Per generare le espressioni da un vettore di carattere, utilizzare parse(text=...):

lbls <- c("E^A","S^P","lambda","T","E^Q","E^Q","AT")  
x <- 1:length(lbls) 
y <- runif(length(lbls)) 
# I'm just going to draw labels on the (x,y) points. 
plot(x,y,'n') 
text(x,y, labels=parse(text=lbls)) # see the parse(text=lbls) ? 

enter image description here

+0

Grazie mille! Risolve il mio problema esattamente !! – Pengyao