title: Python Side-by-side box plots on same figure
body: <p>I am trying to generate a box plot in Python 2.7 for each categorical value in column E from the Pandas dataframe below</p>
  
  <pre><code>          A         B         C         D  E
  0  0.647366  0.317832  0.875353  0.993592  1
  1  0.504790  0.041806  0.113889  0.445370  2
  2  0.769335  0.120647  0.749565  0.935732  3
  3  0.215003  0.497402  0.795033  0.246890  1
  4  0.841577  0.211128  0.248779  0.250432  1
  5  0.045797  0.710889  0.257784  0.207661  4
  6  0.229536  0.094308  0.464018  0.402725  3
  7  0.067887  0.591637  0.949509  0.858394  2
  8  0.827660  0.348025  0.507488  0.343006  3
  9  0.559795  0.820231  0.461300  0.921024  1
  </code></pre>
  
  <p>I would be willing to do this with Matplotlib or any other plotting library. So far the above code can plot all the categories combined on one plot. Here is the code to generate the above data and produce the plot:</p>
  
  <pre><code>import numpy as np
  import pandas as pd
  import matplotlib.pyplot as plt
  fig, ax = plt.subplots()
  
  # Data
  df = pd.DataFrame(np.random.rand(10,4),columns=list('ABCD'))
  df['E'] = [1,2,3,1,1,4,3,2,3,1]
  
  # Boxplot
  bp = ax.boxplot(df.iloc[:,:-1].values, widths=0.2)
  plt.show()
  </code></pre>
  
  <p>In this example, the categories are 1,2,3,4. I would like to plot separate boxplots side-by-side on the same figure, for only categories 1 and 2 and show the category names in the legend.</p>
  
  <p>Is there a way to do this?</p>
  
  <p><strong>Additional Information:</strong></p>
  
  <p>The output should look similar to the 3rd figure from <a href="http://seaborn.pydata.org/generated/seaborn.boxplot.html" rel="noreferrer">here</a> - replace "Yes","No" by "1","2".</p>