title: force boxplots from geom_boxplot to constant width
body: <p>I'm making a boxplot in which <code>x</code> and <code>fill</code> are mapped to different variables, a bit like this:</p>
  
  <pre><code>ggplot(mpg, aes(x=as.factor(cyl), y=cty, fill=as.factor(drv))) + 
      geom_boxplot()
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/PAGhW.png" alt="enter image description here"></p>
  
  <p>As in the example above, the widths of my boxes come out differently at different <code>x</code> values, because I do not have all possible combinations of <code>x</code> and <code>fill</code> values, so .</p>
  
  <p>I would like for all the boxes to be the same width. Can this be done (ideally without manipulating the underlying data frame, because I fear that adding fake data will cause me confusion during further analysis)?</p>
  
  <p>My first thought was </p>
  
  <pre><code>+ geom_boxplot(width=0.5)
  </code></pre>
  
  <p>but this doesn't help; it adjusts the width of the full set of boxplots for a given <code>x</code> factor level.</p>
  
  <p><a href="https://stackoverflow.com/questions/9818835/geom-boxplot-from-ggplot2-forcing-an-empty-level-to-appear">This post</a> <em>almost</em> seems relevant, but I don't quite see how to apply it to my situation. Using <code>+ scale_fill_discrete(drop=FALSE)</code> doesn't seem to change the widths of the bars.</p>