title: Matplotlib: avoiding overlapping datapoints in a "scatter/dot/beeswarm" plot
body: <p>When drawing a dot plot using <code>matplotlib</code>, I would like to offset overlapping datapoints to keep them all visible.  For example, if I have:</p>
  <pre><code>CategoryA: 0,0,3,0,5  
  CategoryB: 5,10,5,5,10  
  </code></pre>
  <p>I want each of the <code>CategoryA</code> &quot;0&quot; datapoints to be set side by side, rather than right on top of each other, while still remaining distinct from <code>CategoryB</code>.</p>
  <p>In R (<code>ggplot2</code>) there is a <code>&quot;jitter&quot;</code> option that does this. Is there a similar option in matplotlib, or is there another approach that would lead to a similar result?</p>
  <p><em><strong>Edit:</strong></em> to clarify, <a href="http://www.cbs.dtu.dk/%7Eeklund/beeswarm/" rel="noreferrer">the <code>&quot;beeswarm&quot;</code> plot in R</a> is essentially what I have in mind, and <a href="https://github.com/mgymrek/pybeeswarm" rel="noreferrer"><code>pybeeswarm</code></a> is an early but useful start at a matplotlib/Python version.</p>
  <p><em><strong>Edit:</strong></em> to add that Seaborn's <a href="http://seaborn.pydata.org/generated/seaborn.swarmplot.html?highlight=swarmplot#seaborn.swarmplot" rel="noreferrer">Swarmplot</a>, introduced in version 0.7, is an excellent implementation of what I wanted.</p>