# Changing y-axis tick labels from standard form to the full number

I made a scatterplot and the y-axis range runs from 0 to 800,000. How can I make the y-axis ticks show the numbers ("0", "200,000", "400,000", "600,000", "800,000") instead of their standard forms ("0e+00", "2e+05", "4e+05", "6e+05", "8e+05")?

## Answers

See the **scipen** option in ?options. Here is an example:

set.seed(42) dat <- data.frame(x = runif(100, min = 0, max = 1000000), y = runif(100, min = 0, max = 1000000)) layout(matrix(1:2, ncol = 2)) plot(y ~ x, data = dat) opt <- options(scipen = 10) plot(y ~ x, data = dat) options(opt) layout(1)

Which produces:

Other options include suppressing the axes with axes = FALSE in the plot() call and then use axis() to add your own axes with custom supplied labels using format(); see ?format for details. This is the way to go if you really want the "," in the numbers separating the thousands.

Here's an example to get you started:

x <- 1:10 y <- runif(10) * 1e6 yrange <- c(0, 1e6) ticks <- pretty(yrange) labels <- format(ticks, big.mark=",", scientific=FALSE) plot(y~x, yaxt="n", ylim = yrange) axis(2, at = ticks, labels = labels, las = 1, cex.axis=0.7)

Use format and scientific=FALSE:

a<-c(100000, 200000) format(a, scientific=FALSE)