ylim values how ggplot dollar change r ggplot2

r - values - scale y axis ggplot



ggplot2 y eje etiqueta precisiĆ³n decimal (1)

Estoy trazando varios gráficos ggplot en un bucle (lo sé, lo sé, no uso el bucle plyr ... pero) y tenía curiosidad si había una manera de establecer la precisión decimal para decir un decimal (es decir, 0.0). Estoy usando la siguiente transformación de escala.

p <- p + scale_y_log10()

Cualquier ayuda sería apreciada.


Tenía la impresión de que un decimal (es decir, 1.2) era el valor predeterminado, pero si ve más decimales, puede pasar su propio formato a la escala:

fmt_dcimals <- function(decimals=0){ # return a function responpsible for formatting the # axis labels with a given number of decimals function(x) as.character(round(x,decimals)) }

Y luego agrega la escala a tu parcela:

ggplot( ... ) + scale_y_log10(labels = fmt_dcimals(2))

Ahora que pienso en esto, debo agregar que si realmente va a escribir su propio formateador, probablemente debería seguir usando la función de format para hacer el trabajo, en lugar de redondear y coaccionar. Eso es probablemente más seguro y "mejor".

Como ejemplo, para forzar dos dígitos después del decimal, puedes cambiar esta función de formato a algo como esto:

fmt_dcimals <- function(decimals=0){ function(x) format(x,nsmall = decimals,scientific = FALSE) }

y puedes seguir jugando con los argumentos de nsmall y digits para format y obtener lo que quieres, creo. Un ejemplo de su uso:

df <- data.frame(x = 1:5,y = rexp(5)) ggplot(df,aes(x = x,y=y)) + geom_point() + scale_y_log10(labels = fmt_dcimals(2))