Home » Logarithmic scale in R with ggplot2

# Logarithmic scale in R with ggplot2

2020: the year that every data scientist became a virologist. For the past weeks we’ve been numbed with statistics and plots about the coronavirus. A recurring feature of these plots is that they often have a logarithmic axes. Here’s how to achieve this in R’s ggplot2.

Lets’s say you are trying to plot daily new COVID-19 cases in the United States using ggplot2 (until 2020-03-28). That would look like this.

ggplot(usa,aes(x = DATE, y = NEW_CASES)) +
geom_line() +
geom_point() +
t +
ylab('DAILY NEW CASES (LINEAR SCALE)')

However, epidemics tend to grow exponentially. Given this property, it often makes sense to plot this on a logarithmic scale, and not on a linear one. In ggplot2, we can do this fairly easy using one of the following functions.

Of course, you can do exactly the same for the x axis. Furthermore, the library also allows for logarithmic tick marks using annotation_logticks().

ggplot(usa,aes(x = DATE, y = NEW_CASES)) +
geom_line() +
geom_point() +
t +
ylab('DAILY NEW CASES (LINEAR SCALE)') +
scale_y_log10() +
annotation_logticks(sides = 'l')

Wanna know how I made these charts so crisp in ggplot2? Have a look at this blog post.

### Say thanks, ask questions or give feedback

Technologies get updated, syntax changes and honestly… I make mistakes too. If something is incorrect, incomplete or doesn’t work, let me know in the comments below and help thousands of visitors.