title: ggplot: how to add common x and y labels to a grid of plots
body: <p>Using <code>diamonds</code>, I want to plot <code>carat</code> vs <code>price</code> for 4 levels (<code>Fair</code>, <code>Good</code>, <code>Very Good</code> and <code>Premimum</code>) of <code>cut</code>. </p>
  
  <p>Instead of allowing <code>facet_wrap()</code>to control the breaks in the axes, I made four plots to control the breaks in axes. </p>
  
  <pre><code>library(ggplot2)
  library(egg)
  library(grid)
  f1 &lt;- 
  ggplot(diamonds[diamonds$cut=="Fair",], aes(carat, price))+
    geom_point()+
    facet_wrap(~cut, ncol =2)+
    scale_x_continuous(limits = c(0,4), breaks=c(0,  1, 2, 3, 4))+
    scale_y_continuous(limits = c(0,10000), breaks=c(0,  2500, 5000, 7500, 10000))+
    labs(x=expression(" "),
         y=expression(" "))
  
  
  f2 &lt;- 
  ggplot(diamonds[diamonds$cut=="Good",], aes(carat, price))+
    geom_point()+
    facet_wrap(~cut, ncol =2)+
    scale_y_continuous(limits = c(0,5000), breaks=c(0,  1000, 2000, 3000, 4000, 5000))+
    labs(x=expression(" "),
         y=expression(" "))
  
  
  f3 &lt;- 
    ggplot(diamonds[diamonds$cut=="Very Good",], aes(carat, price))+
    geom_point()+
    facet_wrap(~cut, ncol =2)+
    scale_x_continuous(limits = c(0,1), breaks=c(0, 0.2,  0.4, 0.6, 0.8, 1))+
    scale_y_continuous(limits = c(0,1000), breaks=c(0,  200, 400, 600, 800, 1000))+
    labs(x=expression(" "),
         y=expression(" "))
  
  f4 &lt;- 
    ggplot(diamonds[diamonds$cut=="Premium",], aes(carat, price))+
    geom_point()+
    facet_wrap(~cut, ncol =2)+
    scale_x_continuous(limits = c(0,1.5), breaks=c(0, 0.2,  0.4, 0.6, 0.8, 1, 1.2, 1.4))+
    scale_y_continuous(limits = c(0, 3000), breaks=c(0,  500, 1000, 1500, 2000, 2500, 3000))+
    labs(x=expression(" "),
         y=expression(" "))
  
  fin_fig &lt;- ggarrange(f1, f2, f3, f4, ncol =2)
  fin_fig   
  </code></pre>
  
  <p><strong>RESULT</strong></p>
  
  <p><em>Each plot has a range of different y values</em> </p>
  
  <p><a href="https://i.stack.imgur.com/3XPY0.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/3XPY0.png" alt="enter image description here"></a></p>
  
  <p><strong>QUESTION</strong></p>
  
  <p>In all facets, x and y axes are the same. The only difference is the min, max and the breaks. I want to add x and y labels to this figure. I can do this manually in any word document or image editor. Is there anyway to do it in R directly?</p>