2010-05-25 26 views
9

Cuando elige una escala de registro, ggplot2 formatea los saltos como 10^x. Me gustaría que no haga eso. Por ejemplo, el código de abajo debería mostrar un gráfico con las señales a las 1, 2, 5, etc, no 10^0, 10^0.3, 10^0.69 etc.¿Cómo sobrescribir el formato de eje de ggplot2?

library(ggplot2) 
dfr <- data.frame(x = 1:100, y = rlnorm(100)) 
breaks <- as.vector(c(1, 2, 5) %o% 10^(-1:1)) 
p1 <- ggplot(dfr, aes(x, y)) + geom_point() + scale_y_log10(breaks = breaks) 
print(p1) 

supongo que la adición de un argumento formatter-scale_y_log10 haría el truco, pero no estoy seguro de qué poner en el argumento, o dónde podrían documentarse las opciones.

Respuesta

8

scale_y_log10(breaks = breaks, labels = breaks deberían hacer el truco.

+0

Ah. Fácil cuando sabes cómo. Gracias. –

4

En ggplot2 versión 0.9.0, este comportamiento (formatear las etiquetas de los ejes como 10^0) ya no es el predeterminado. El código en la pregunta ahora da el resultado deseado.

library(ggplot2) 
dfr <- data.frame(x = 1:100, y = rlnorm(100)) 
breaks <- as.vector(c(1, 2, 5) %o% 10^(-1:1)) 
p1 <- ggplot(dfr, aes(x, y)) + geom_point() + scale_y_log10(breaks = breaks) 
print(p1) 

enter image description here

Cuestiones relacionadas