2010-08-05 20 views
8

Tengo unos 100k valores. Cuando trazarlos como una línea en R (usando plot(type="l") los números junto a las garrapatas del eje x se imprimen en formato científico (por ejemplo 0e+00,2e+04,...,1e+05) En cambio, me gustaría que ser:.Formateo del número de control en el eje de los gráficos R

A) 0,20kb,...,100kb

B) lo mismo, pero ahora la primera coordenada debe ser 1 (es decir, comenzar a contar desde 1 en lugar de 0).

Por cierto matrices R Use la numeración que comienza a partir del 1 (en contraste con las matrices en Perl, Java, etc.) por lo que se preguntan por qué cuando se traza "" decidieron a partir de 0 ...

Respuesta

8

A)

R> xpos <- seq(0, 1000, by=100) 
R> plot(1:1000, rnorm(1000), type="l", xaxt="n") 
R> axis(1, at=xpos, labels=sprintf("%.2fkb", xpos/1000)) 

B) igual que el anterior, ajustar xpos

+0

esto no es correcto. simplemente agregue "kb" al lado del número, pero deje el número sin cambios (en lugar de dividirlos entre 1000) –

+0

al menos darle al chico un voto para la respuesta correcta ahora – John

0

la pregunta es bastante viejo, pero cuando miré de soluciones para el problema descrito fue clasificado bastante alto. Por lo tanto, agrego esto, bastante tarde, respondo y espero que pueda ayudar a otros :-).

En algunas situaciones, puede ser útil utilizar las ubicaciones de marcación que R sugiere. R proporciona la función para este propósito. Posiblemente no existía en R2.X, pero solo desde R3.X.

A)

myTicks = axTicks(1) 
axis(1, at = myTicks, labels = paste(formatC(myTicks/1000, format = 'd'), 'kb', sep = '')) 

B)

Si traza de datos como plot(rnorm(1000)), entonces el primer valor de x es 1 y no 0. Por lo tanto, la numeración automática se inicia con 1. Tal vez esto era una problema con una versión anterior de R?!

Cuestiones relacionadas