title: Creating a grouped bar plot with Seaborn
body: <p>I am trying to create a grouped bar graph using Seaborn but I am getting a bit lost in the weeds. I actually have it working but it does not feel like an elegant solution. Seaborn only seems to support clustered bar graphs when there is a binary option such as Male/Female. (<a href="https://seaborn.pydata.org/examples/grouped_barplot.html" rel="nofollow noreferrer">https://seaborn.pydata.org/examples/grouped_barplot.html</a>)</p>
  <p>It does not feel right having to fall back onto matplotlib so much - using the subplots feels a bit dirty :). Is there a way of handling this completely in Seaborn?</p>
  <p>Thanks,</p>
  <p>Andrew</p>
  <pre><code>import pandas as pd
  import seaborn as sns
  import matplotlib.pyplot as plt
  from matplotlib import rcParams
  sns.set_theme(style=&quot;whitegrid&quot;)
  rcParams.update({'figure.autolayout': True})
  
  dataframe = pd.read_csv(&quot;https://raw.githubusercontent.com/mooperd/uk-towns/master/uk-towns-sample.csv&quot;)
  
  dataframe = dataframe.groupby(['nuts_region']).agg({'elevation': ['mean', 'max', 'min'],
                                                     'nuts_region': 'size'}).reset_index()
  dataframe.columns = list(map('_'.join, dataframe.columns.values))
  
  # We need to melt our dataframe down into a long format.
  tidy = dataframe.melt(id_vars='nuts_region_').rename(columns=str.title)
  
  # Create a subplot. A Subplot makes it convenient to create common layouts of subplots.
  # https://matplotlib.org/3.3.3/api/_as_gen/matplotlib.pyplot.subplots.html
  fig, ax1 = plt.subplots(figsize=(6, 6))
  
  # https://stackoverflow.com/questions/40877135/plotting-two-columns-of-dataframe-in-seaborn
  g = sns.barplot(x='Nuts_Region_', y='Value', hue='Variable', data=tidy, ax=ax1)
  
  plt.tight_layout()
  plt.xticks(rotation=45, ha=&quot;right&quot;)
  plt.show()
  </code></pre>
  <p><a href="https://i.stack.imgur.com/8eq9V.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/8eq9V.png" alt="enter image description here" /></a></p>