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