title: Possible to combine position_jitter with position_dodge?
body: <p>I've become quite fond of boxplots in which jittered points are overlain over the boxplots to represent the actual data, as below:</p>
  
  <pre><code>set.seed(7)
  l1 &lt;- gl(3, 1, length=102, labels=letters[1:3])
  l2 &lt;- gl(2, 51, length=102, labels=LETTERS[1:2]) # Will use this later
  y &lt;- runif(102)
  d &lt;- data.frame(l1, l2, y)
  
  ggplot(d, aes(x=l1, y=y)) + 
    geom_point(position=position_jitter(width=0.2), alpha=0.5) +
    geom_boxplot(fill=NA) 
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/n9tPN.png" alt="enter image description here"></p>
  
  <p>(These are particularly helpful when there are very different numbers of data points in each box.)</p>
  
  <p>I'd like to use this technique when I am also (implicitly) using <code>position_dodge</code> to separate boxplots by a second variable, e.g.</p>
  
  <pre><code>ggplot(d, aes(x=l1, y=y, colour=l2)) + 
    geom_point(position=position_jitter(width=0.2), alpha=0.5) +
    geom_boxplot(fill=NA)
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/OadPS.png" alt="enter image description here"></p>
  
  <p>However, I can't figure out how to dodge the points by the <code>colour</code> variable (here, <code>l2</code>) and also jitter them.</p>