web-dev-qa-db-fra.com

Forcer R à cesser de tracer des étiquettes d’axe abrégées - p. Ex. 1e + 00 dans ggplot2

Dans ggplot2, comment puis-je éviter que les étiquettes d'axe soient abrégées - par exemple. 1e+00, 1e+01 le long de l’axe des x une fois tracé? Idéalement, je veux forcer R à afficher les valeurs réelles qui seraient dans ce cas 1,10.

Toute aide très appréciée.

78
JPD

Je pense que vous cherchez ceci:

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)
105
Arun

Avez-vous essayé quelque chose comme:

options(scipen=10000)

avant de comploter?

53
juba

Juste une mise à jour de ce que @Arun a créé, puisque je l’ai essayé aujourd’hui et que cela n’a pas fonctionné car il a été actualisé.

+ scale_x_continuous(labels = scales::comma)
27
Derek Corcoran

Comme solution plus générale, vous pouvez utiliser scales::format_format pour supprimer la notation scientifique. Cela vous donne également beaucoup de contrôle sur la façon dont vous voulez que vos étiquettes soient affichées, par opposition à scales::comma qui ne fait que des séparations à la virgule des ordres de grandeur.

Par exemple:

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)
9
user2739472