Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Force the origin to start at 0 without margin between data and x axis in new ggplot theme

Tags:

plot

r

ggplot2

axes

Based on this question Force the origin to start at 0 I want to implement this into a new created theme and not just as a default setting.

data(iris)
ggplot(iris, aes(x = Species)) + 
  geom_bar() +
  scale_y_continuous(expand = expansion(mult = c(0, 0.05)))

How can I do this without defining it every single plot?

requested result

like image 458
Bolle Avatar asked Sep 15 '25 11:09

Bolle


1 Answers

As far as I know this not possible via theme(). But you can define a wrapper around scale_y_continuous like so

library(ggplot2)

data(iris)

scale_y_origin <- function(...) {
  scale_y_continuous(expand = expansion(mult = c(0, 0.05)), ...)
}

ggplot(iris, aes(x = Species)) + 
  geom_bar() +
  scale_y_origin()
like image 53
stefan Avatar answered Sep 17 '25 01:09

stefan