Forzar R para detener el trazado de etiquetas de ejes abreviados-por ejemplo, 1e+00 en ggplot2


En ggplot2 ¿cómo puedo evitar que se abrevien las etiquetas del eje - por ejemplo, 1e+00, 1e+01 a lo largo del eje x una vez trazado? Idealmente, quiero forzar R para mostrar los valores reales que en este caso sería 1,10.

Cualquier ayuda muy apreciada.

Author: JPD, 2013-01-28

4 answers

Creo que estás buscando esto:

require(ggplot2)
df <- data.frame(x=seq(1, 1e9, length.out=100), y=sample(100))
# displays x-axis in scientific notation
p  <- ggplot(data = df, aes(x=x, y=y)) + geom_line() + geom_point()
p

# displays as you require
require(scales)
p + scale_x_continuous(labels = comma) # typo: label -> labels (corrected)
 83
Author: Arun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-28 14:40:16

¿Intentaste algo como:

options(scipen=10000)

Antes de trazar?

 42
Author: juba,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-28 14:19:27

Solo una actualización de lo que @Arun hizo, lo probé hoy y no lo hizo porque se actualizó a

+ scale_x_continuous(labels = scales::comma)
 15
Author: Derek Corcoran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-16 16:59:14

Como una solución más general, puede usar scales::format_format para eliminar la notación científica. Esto también le da mucho control sobre cómo exactamente desea que se muestren sus etiquetas, a diferencia de scales::comma que solo hace separaciones por comas de los órdenes de magnitud.

Por ejemplo:

require(ggplot2)
require(scales)
df <- data.frame(x=seq(1, 1e9, length.out=100), y=sample(100))

# Here we define spaces as the big separator
point <- format_format(big.mark = " ", decimal.mark = ",", scientific = FALSE)

# Plot it
p  <- ggplot(data = df, aes(x=x, y=y)) + geom_line() + geom_point()
p + scale_x_continuous(labels = point)
 5
Author: user2739472,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-28 17:34:11