2012-04-02 11 views
5

Tengo un vector de cadenas, digamos c("E^A","S^P","lambda","T","E^Q","E^Q","AT"), y quiero trazarlas como la etiqueta del eje x usando la expresión matemática. (Creo que las he escrito en formato de expresión matemática, pero con cita)cómo convertir cadenas en expresiones matemáticas en R?

Cuando pongo

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)

El eje x sólo muestra "E^A", "S^P"," lambda "," T "," E^Q "," E^Q "," AT ", no la interpretación matemática de las cuerdas, y supongo que es porque no se consideran símbolos matemáticos.

¿Cómo puedo obtener un etiquetado matemático? ¡Muchas gracias!

+0

expresión de uso() ' – aatrujillob

+0

expression', así como' as.expression' no se puede convertir en una expresión de caracteres. – kohske

+0

Si quiere obtener estas expresiones en el eje x, ¿ha mirado '? Axis'? – BenBarnes

Respuesta

7

En general, el uso expression (ver ?plotMath):

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

Nótese que la 'E^A' es no entre comillas.

Para generar expresiones de un vector de caracteres, utilice 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

¡Muchas gracias! ¡Soluciona mi problema exactamente! – Pengyao

Cuestiones relacionadas