Respostas:
Acho que você está procurando por isso:
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)
Você tentou algo como:
options(scipen=10000)
antes de traçar?
Apenas uma atualização do que o @Arun fez, já que experimentei hoje e não funcionou porque foi atualizado para
+ scale_x_continuous(labels = scales::comma)
require(scales)
? Isso importa o pacote que contém a comma
balança. Como você descobriu, você também pode especificar o pacote ao se referir a ele, em vez de exigi-lo de antemão.
Como uma solução mais geral, você pode usar scales::format_format
para remover a notação científica. Isso também lhe dá muito controle sobre como exatamente você deseja que seus rótulos sejam exibidos, ao contrário do scales::comma
que faz apenas separações por vírgulas de ordens de magnitude.
Por exemplo:
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)
Existe uma solução que não requer biblioteca de escalas.
Podes tentar:
# 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))
A solução geral mais simples não é definir a penalidade que R usa para notação científica mais alta?
ou seja, defina scipen()
um número com o qual você se sinta confortável.
Por exemplo, se o máximo do eixo nos gráficos for provavelmente 100.000, a configuração scipen(200000)
garantirá que R (e ggplot) usará a notação padrão para todos os números abaixo de 200.000 e não haverá necessidade de adicionar linhas à função ggplot.