Subíndices en gráficos en R

95

No encuentro la forma de escribir subíndices en el título o el subtítulo en R. ¿Cómo puedo escribir v 1,2 con 1,2 como subíndices?

¡Gracias por tu ayuda!

Jeffrey
fuente

Respuestas:

138

expression es tu amigo:

plot(1,1, main=expression('title'^2))  #superscript
plot(1,1, main=expression('title'[2])) #subscript
smu
fuente
3
¿Cómo cargar "2" desde la variable? Tengo un bucle y necesito trazar x_ [1] x_ [2] x_ [3] ...
0x2207
6
Puede utilizarlo bquotecuando trabaje con variables subindicadas. Diga,, nIter <- 2luego plot(1, 1, main = bquote(title[.(nIter)]))es exactamente lo que necesita (tomado de la lista de correo de R-help ).
fdetsch
119

Si está buscando tener varios subíndices en un texto, use la estrella (*) para separar las secciones:

plot(1:10, xlab=expression('hi'[5]*'there'[6]^8*'you'[2]))
Cyrille
fuente
6
Vaya, una respuesta de hace dos días a una pregunta de dos años, eso resulta ser lo que necesitaba. ¡Gracias!
Michael
2
Y si desea que el subíndice sea una cadena, simplemente póngalo entre comillas:plot(1:10, xlab=expression('hi'[5]*'there'[6]^8*'you'['down here']*'and'^'up'*'there'))
Stewart Macdonald
1
Ese es un buen consejo, ya que puede poner [digits]o [characters]o incluso [a5]en el subíndice, pero no [5a]o [a a]. Recientemente descubrí esto para:expression('x'['10sdt'])
Cyrille
28

¿Ver? Expresión

plot(1:10,main=expression("This is a subscript "[2]))

ingrese la descripción de la imagen aquí

Persecución
fuente
10

Un subíndice y se refiere a un valor almacenado ...

a <- 10
plot(c(0,1), c(0,1), type = 'n', ann = FALSE, xaxt = 'n', yaxt = 'n')
text(0.2, 0.6, cex = 1.5, bquote(paste('S'['f']*' = ', .(a))))

ingrese la descripción de la imagen aquí

Tony Ladson
fuente
5

Otro ejemplo, la expresión funciona para superíndices negativos sin la necesidad de comillas alrededor del número negativo:

title(xlab=expression("Nitrate Loading in kg ha"^-1*"yr"^-1))

y solo necesita el * para separar las secciones como se mencionó anteriormente (cuando escribe un superíndice o subíndice y necesita agregar más texto a la expresión posterior).

user29609
fuente
1
¡Gracias por explicar explícitamente lo que hace *!
Lalochezia
4

Como han señalado otros usuarios, usamos expression(). Me gustaría responder a la pregunta original que involucra una coma en el subíndice:

¿Cómo puedo escribir v 1,2 con 1,2 como subíndices?

plot(1:10, 11:20 , main=expression(v["1,2"]))

Además, me gustaría agregar la referencia para aquellos que buscan encontrar la expressionsintaxis completa en el Rtrazado: Para obtener más información, consulte la ?plotmathpágina de ayuda. La ejecución demo(plotmath)mostrará muchas expresiones y sintaxis relevante.

Recuerde usar *para unir diferentes tipos de texto dentro de una expresión.

Aquí hay algunos de los resultados de muestra de demo(plotmath):

ingrese la descripción de la imagen aquí

Megatron
fuente