title: Pad (expand) only the top of continuous scale in ggplot2
body: <p>I've got some data that share a common x-axis but have two different y variables:</p>
  
  <pre><code>set.seed(42)
  data = data.frame(
      x = rep(2000:2004, 2),
      y = c(rnorm(5, 20, 5), rnorm(5, 150, 15)),
      var = rep(c("A", "B"), each = 5)
  )
  </code></pre>
  
  <p>I'm using a faceted line plot to display the data:</p>
  
  <pre><code>p = ggplot(data, aes(x, y)) +
      geom_line() +
      facet_grid(var ~ ., scales = "free_y")
  </code></pre>
  
  <p><a href="https://i.stack.imgur.com/Fog1o.png" rel="noreferrer"><img src="https://i.stack.imgur.com/Fog1o.png" alt="enter image description here"></a></p>
  
  <p>I'd like the y-axis to include 0. This is easy enough:</p>
  
  <pre><code>p + expand_limits(y = 0)
  </code></pre>
  
  <p>but then my data looks crowded too close to the top of my facets. So I'd like to pad the range of the axis. Normally <code>scale_y_continuous(expand = ...)</code> is used for padding the axis, but the padding is applied symmetrically to the top and bottom, making the y-axis go well <em>below</em> 0.</p>
  
  <pre><code>p + expand_limits(y = 0) + 
      scale_y_continuous(expand = c(0.3, 0.2))
  # the order of expand_limits and scale_y_continuous
  # does not change the output
  </code></pre>
  
  <p><a href="https://i.stack.imgur.com/kL9oU.png" rel="noreferrer"><img src="https://i.stack.imgur.com/kL9oU.png" alt="enter image description here"></a></p>
  
  <p>I can't explicitly set limits because of the facets with free y scales. <strong>What's the best way to have the y-scale extend down to 0  (not below!), while multiplicatively padding the top of the y scale?</strong></p>