2012-05-17 83 views
37

Usando gráficos base en R, ¿cómo puedo agregar superíndices a las etiquetas de los ejes, como podría querer al trazar los ejes de latitud y longitud en un mapa?Usar superíndices en las etiquetas del eje R

Considere este ejemplo:

plot(-100:-50, 50:100, type="n", xlab="", ylab="", axes=FALSE) 
axis(1, seq(-100, -50, 10), labels=paste(abs(seq(-100, -50, 10)), "o", "W", sep="")) 
axis(2, seq(50, 100, 10), labels=paste(seq(50,100,10), "o", "N", sep="")) 
box() 

Produce un marco agradable en torno a un mapa. Sería incluso mejor hacer que el símbolo de grado se superíndice.

Esto por lo general se puede hacer en otras funciones de trazado como mtext() y text() usando expression(paste(...)) o substitute() pero la forma de hacerlo en este caso?

+2

hace esto 'parcela (0, xlab = expresión (pasta ('(SOC [', kgm^-2, '])'^0.25, sep = ''))) 'responda su pregunta? –

Respuesta

37

Funciona de la misma manera para los ejes: parse(text='70^o*N') elevará el o como un superíndice (el *N es para asegurarse de que N tampoco se levante).

labelsX=parse(text=paste(abs(seq(-100, -50, 10)), "^o ", "*W", sep="")) 
labelsY=parse(text=paste(seq(50,100,10), "^o ", "*N", sep="")) 
plot(-100:-50, 50:100, type="n", xlab="", ylab="", axes=FALSE) 
axis(1, seq(-100, -50, 10), labels=labelsX) 
axis(2, seq(50, 100, 10), labels=labelsY) 
box() 
+0

El marcado de texto en parcelas es un área un poco oscura de la práctica R. Siempre parece arruinarme. Gracias por esta claridad. Sería genial si alguien desarrollara un tutorial en profundidad para esto. – digitalmaps

+0

¿Qué carácter se usa para indicar un subíndice? – hendra

+2

@npo: corchetes (ver '? Plotmath') –

23

Este es un ejemplo rápido

plot(rnorm(30), xlab = expression(paste("4"^"th"))) 
+0

¿Cómo escribirías algo que no esté en superíndice al final, como en "4º momento" sin superíndice del "momento"? – Pertinax

+0

@TheThunderChimp Lo siento por la respuesta tardía. Quizás ya hayas descubierto cómo hacerlo, pero puedes hacer esto: 'plot (rnorm (30), xlab = expression (paste (" 4 "^" th "," moment ")))' – Alex

2

La otra opción en este caso sería la de escribir el símbolo de grado: ˚

R parece manejarlo bien. Escriba Option-k en una Mac para obtenerlo. No estoy seguro sobre otras plataformas.

+0

Esto no no funciona para otros símbolos como Superíndice 7 de Unicode (http://www.fileformat.info/info/unicode/char/2077/index.htm) – Pertinax

1

@The Thunder Chimp Puede dividir el texto de tal forma que algunas secciones se vean afectadas por el script súper (o sub) y otras no por el uso de *. Por su ejemplo, con la división de la palabra "momento" de "cuarto" -

plot(rnorm(30), xlab = expression('4'^th*'moment')) 
Cuestiones relacionadas