title: How to create two mirrored stacked area chart ggplot2
body: <p>Is it possible in ggplot2 to draw polygons that are mirrored opposite each other? 
  In the base graph, this can be achieved using parameters such as:</p>
  
  <pre><code>plot(a,b, xlim = range(0,100))
  par(new=T)
  plot(c,d, xlim = rev(range(0,100)))
  </code></pre>
  
  <p>is there something similar for the ggplot2?</p>
  
  <p>That's what I have now with basic graph. But I  but I would like to achieve this with the ggplot2.</p>
  
  <p>Sample data:</p>
  
  <pre><code>df &lt;- read.table(text="row a b 
    1    0.018212335  0.000000000    
    2    0.001418477  0.038865917    
    3    0.001418477  0.072564051    
    4    0.007521763  0.086980476    
    5    0.002845853  0.117164836    
    6    0.003793721  0.130435344    
    7    0.004267654  0.146659639    
    8    0.006639574  0.161380530    
    9    0.002850356  0.192757352    
    10    0.003325416  0.116419700    
    11    0.004275534  0.126818707    
    12    0.005225653  0.139539487    
    13    0.005700713  0.163273554    
    14    0.006650831  0.186354346    
    15    0.007125891  0.101023651", header=TRUE)
  
  df2 &lt;- read.table(text="row c
    0.40279511  1
    0.38332869  2
    0.37004052  3
    0.36013069  4
    0.34930768  5
    0.34690361  6
    0.33686601  7
    0.32728786  8
    0.31961345  9
    0.31051904  10
    0.31816200  11
    0.31671358  12
    0.31721331  13
    0.31818252  14
    0.30866629  15", header=TRUE)
  </code></pre>
  
  <p>Base plotting code</p>
  
  <pre><code>plot(df2$c, df2$row, yaxt="n", xaxt="n",  
    ylim = rev(range(0,100)), xlim = rev(range(0,1)), 
    col='gray77', type='l', ylab=' ', xlab=' ')
  polygon(c(0,df2$c,0), c(min(df2$row), df2$row,max(df2$row)),
    col='gray', border = NA, ylim = rev(range(0,100)))
  par(new=T)
  plot(df$a, df$row, yaxt="n", xaxt = "n",  
     ylim = rev(range(0,100)), xlim = range(0,1), 
     col='mediumblue', type='l', ylab=' ', xlab=' ')
  polygon(c(0,df$a,0), c(min(df$row), df$row,max(df$row)),
    col='mediumblue', border = NA, 
    ylim = rev(range(0,100)), xlim = range(0,1))
  par(new=T)
  plot(df$b, df$row, yaxt="n", xaxt = "n", 
    ylim = rev(range(0,100)), xlim = range(0,1), 
    col='steelblue', type='l', ylab=' ', xlab=' ', main = "20 mm h^-1")
  polygon(c(0,df$b,0), c(min(df$row), df$row, max(df$row)),
    col='steelblue', border = NA, ylim = rev(range(0,100)), xlim = range(0,1))  
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/GN0yU.png" alt="example"></p>