Réponses:
Je pense que vous recherchez 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)
Avez-vous essayé quelque chose comme:
options(scipen=10000)
avant de tracer?
Juste une mise à jour de ce que @Arun a fait, depuis que je l'ai essayé aujourd'hui et cela n'a pas fonctionné car il a été actualisé pour
+ scale_x_continuous(labels = scales::comma)
require(scales)
? Cela importe le package qui contient la comma
balance. Comme vous l'avez découvert, vous pouvez également spécifier le package lorsque vous vous y référez au lieu de l'exiger au préalable.
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 souhaitez que vos étiquettes soient affichées, par opposition aux scales::comma
séparations par virgules 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)
Il existe une solution qui ne nécessite pas de bibliothèque de balances.
Tu peux essayer:
# To deactivate scientific notation on y-axis:
p + scale_y_continuous(labels = function(x) format(x, scientific = FALSE))
# To activate scientific notation on y-axis:
p + scale_y_continuous(labels = function(x) format(x, scientific = TRUE))
# To deactivate scientific notation on x-axis:
p + scale_x_continuous(labels = function(x) format(x, scientific = FALSE))
# To activate scientific notation on x-axis:
p + scale_x_continuous(labels = function(x) format(x, scientific = TRUE))
La solution générale la plus simple n'est-elle pas de fixer la pénalité que R utilise pour la notation scientifique plus élevée?
c'est- scipen()
à- dire défini sur un nombre avec lequel vous êtes à l'aise.
Par exemple, si le maximum de votre axe sur les graphiques est probablement de 100 000, le réglage scipen(200000)
garantira que R (et ggplot) utilisera la notation standard pour tous les nombres inférieurs à 200000 et il ne sera pas nécessaire d'ajouter des lignes à la fonction ggplot.