This started happening a few days ago, that scales::percent would add a decimal place in its labels, and I can't seem to disable this decimal to display integer values on y-axis. 
library(dplyr)
library(ggplot2)
mtcars %>%
count(cyl) %>%
mutate(prop = n / sum(n)) %>%
ggplot(aes(x = cyl, y = prop)) +
geom_point() +
scale_y_continuous(labels = scales::percent)
The % is a percent sign, meaning divided by 100. So 25% means 25/100, or 1/4. To convert a percentage to a decimal, divide by 100. So 25% is 25/100, or 0.25.
Now use scales: : percent to convert the y-axis labels into a percentage. This will scale the y-axis data from decimal to percentage. It simply multiplies the value by 100. The scaling factor is 100.
Perhaps not a direct answer to your question, but I have used scales::percent_format and its accuracy argument ("Number to round to") in similar settings.
mtcars %>%
count(cyl) %>%
mutate(prop = n / sum(n)) %>%
ggplot(aes(x = cyl, y = prop)) +
geom_point() +
scale_y_continuous(labels = scales::percent_format(accuracy = 5L))

I think the behaviour of percent was changed in scales 1.0.0. See NEWS and updates in code here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With