In ggplot2 how can I stop axis labels being abbreviated - e.g. 1e+00, 1e+01
along the x axis once plotted? Ideally, I want to force R to display the actual values which in this case would be 1,10
.
Any help much appreciated.
In ggplot2 how can I stop axis labels being abbreviated - e.g. 1e+00, 1e+01
along the x axis once plotted? Ideally, I want to force R to display the actual values which in this case would be 1,10
.
Any help much appreciated.
I think you are looking for this:
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)
Did you try something like :
options(scipen=10000)
before plotting ?
Just an update to what @Arun made, since I tried it today and it didn't work because it was actualized to
+ scale_x_continuous(labels = scales::comma)
As a more general solution, you can use scales::format_format
to remove the scientific notation. This also gives you lots of control around how exactly you want your labels to be displayed, as opposed to scales::comma
which only does comma separations of the orders of magnitude.
For example:
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)