2010-11-29 21 views

Respuesta

20

¿Quieres leer ?plotmath a ver cómo se hace este tipo de cosas. Aquí está un ejemplo:

plot(1:10, main = expression(ARL[1] ~ "curve for" ~ S^2)) 

El [.] es subíndice, mientras ^ da superíndice. El ~ separa las partes de la expresión como si hubiera espacios literales.

Editar: normalmente lo habría hecho:

plot(1:10, main = expression(ARL[1] ~ curve ~ for ~ S^2)) 

pero que arroja un error porque for se interpreta como el inicio de una llamada for() bucle.

+0

En segundo lugar funcionará si utiliza 'expresión (ARL [1] ~ curva ~ "para" ~ S^2) '. – Marek

+0

@Marek: Oh, sí, de acuerdo. Pero si vas a hacer '' for "' podrías hacer '' curve for "', a menos que '~' y "" sean diferentes cantidades de espacio ...? –

+0

Por supuesto. Importa en casos más complicados cuando se necesita mezclar más cadenas. Lo agrego como completitud;) Por otro lado, también puede usar las marcas de retroceso '\' '. – Marek

26

También puede utilizar bquote(paste(...)), que es un poco más flexible que expression: puede incluir valores de las variables (por ejemplo, el valor de x) en las etiquetas con .(x). Por ejemplo:

x<- 232323 
plot(1:10, main = bquote(paste(ARL[1], " curve for ", S^2, "; x=",.(x)))) 
+2

Sí, aunque generalmente encuentro que el uso de la función de pegado plotmath confunde más de lo que ayuda. Try> x <- 232323 > plot (1:10, main = bquote (ARL [1] ~ "curva para" ~ S^2 ~ ";" ~ x ==. (X))) –

+0

+1 Dwin - introducir 'paste' es un problema en el, pero si obtiene', 'o' "" 'en el lugar equivocado ... –

+0

@GavinSimpson Sí, su respuesta es mejor. Pero pensé que sería bueno señalar una solución más flexible en caso de que alguien venga aquí en busca de una solución más general. – fabians

1

También puede utilizar latex2exp::TeX para convertir TeX a las expresiones autmatically:

plot(cars, main = TeX("$ARL_1$ curve for $S^2$")) 
Cuestiones relacionadas