title: How to subplot seaborn catplot (kind='count') on-top of catplot (kind='violin') with sharex=True
body: <p>So far I have tried the following code:</p>
  
  <pre><code># Import to handle plotting
  import seaborn as sns
  
  # Import pyplot, figures inline, set style, plot pairplot
  import matplotlib.pyplot as plt
  
  # Make the figure space
  fig = plt.figure(figsize=(2,4))
  gs = fig.add_gridspec(2, 4)
  ax1 = fig.add_subplot(gs[0, :])
  ax2 = fig.add_subplot(gs[1, :])
  
  # Load the example car crash dataset
  tips = sns.load_dataset("tips")
  
  # Plot the frequency counts grouped by time
  sns.catplot(x='sex', hue='smoker',
                                     kind='count',
                                     col='time',
                                     data=tips,
                                     ax=ax1)
  
  # View the data
  sns.catplot(x='sex', y='total_bill', hue='smoker',
                                                     kind='violin',
                                                     col='time',
                                                     split='True', 
                                                     cut=0, 
                                                     bw=0.25, 
                                                     scale='area',
                                                     scale_hue=False,
                                                     inner='quartile',
                                                     data=tips,
                                                     ax=ax2)
  
  plt.close(2)
  plt.close(3)
  plt.show()
  </code></pre>
  
  <p>This seems to stack the categorial plots, of each kind respectively, on top of eachother.
  <img src="https://i.stack.imgur.com/GLLzJ.png" alt="This seems to stack the categorial plots, of each kind respectively, on top of eachother."></p>
  
  <p>What I want are the resulting plots of the following code in a single figure with the countplot in row one and the violin plot in row two.</p>
  
  <pre><code># Import to handle plotting
  import seaborn as sns
  
  # Import pyplot, figures inline, set style, plot pairplot
  import matplotlib.pyplot as plt
  
  # Load the example car crash dataset
  tips = sns.load_dataset("tips")
  
  # Plot the frequency counts grouped by time
  sns.catplot(x='sex', hue='smoker',
                                     kind='count',
                                     col='time',
                                     data=tips)
  
  # View the data
  sns.catplot(x='sex', y='total_bill', hue='smoker',
                                                     kind='violin',
                                                     col='time',
                                                     split='True', 
                                                     cut=0, 
                                                     bw=0.25, 
                                                     scale='area',
                                                     scale_hue=False,
                                                     inner='quartile',
                                                     data=tips)
  </code></pre>
  
  <p>The actual categorical countplot that I would like to span row one of a figure that also contains a categorical violin plot (Ref. Image 3):<br>
  <img src="https://i.stack.imgur.com/4PJmL.png" alt="The actual categorical countplot that I would like to span row one of a figure that also contains a categorical violin plot (Ref. Image 3)"></p>
  
  <p>The actual categorical violin plot that I would like to span row two of a figure that also contains a categorical countplot (Ref. Image 2):<br>
  <img src="https://i.stack.imgur.com/BnZ6D.png" alt="The actual categorical violin plot that I would like to span row two of a figure that also contains a categorical countplot (Ref. Image 2)"></p>
  
  <p>I tried the following code which forced the plots to be in the same figure. The downside is that the children of the figure/axes did not transfer, i.e. axis-labels, legend, and grid lines. I feel pretty close with this hack but need another push or source for inspiration. Also, I'm no longer able to close the old/unwanted figures.</p>
  
  <pre><code># Import to handle plotting
  import seaborn as sns
  
  # Import pyplot, figures inline, set style, plot pairplot
  import matplotlib.pyplot as plt
  
  # Set some style
  sns.set_style("whitegrid")
  
  # Load the example car crash dataset
  tips = sns.load_dataset("tips")
  
  # Plot the frequency counts grouped by time
  a = sns.catplot(x='sex', hue='smoker',
                                         kind='count',
                                         col='time',
                                         data=tips)
  
  numSubs_A = len(a.col_names)
  
  for i in range(numSubs_A):
      for p in a.facet_axis(0,i).patches:
          a.facet_axis(0,i).annotate(str(p.get_height()), (p.get_x()+0.15, p.get_height()+0.1))
  
  # View the data
  b = sns.catplot(x='sex', y='total_bill', hue='smoker',
                                                         kind='violin',
                                                         col='time',
                                                         split='True', 
                                                         cut=0, 
                                                         bw=0.25, 
                                                         scale='area',
                                                         scale_hue=False,
                                                         inner='quartile',
                                                         data=tips)
  
  numSubs_B = len(b.col_names)
  
  # Subplots migration
  f = plt.figure()
  for i in range(numSubs_A):
      f._axstack.add(f._make_key(a.facet_axis(0,i)), a.facet_axis(0,i))
  for i in range(numSubs_B):
      f._axstack.add(f._make_key(b.facet_axis(0,i)), b.facet_axis(0,i))
  
  # Subplots size adjustment
  f.axes[0].set_position([0,1,1,1])
  f.axes[1].set_position([1,1,1,1])
  f.axes[2].set_position([0,0,1,1])
  f.axes[3].set_position([1,0,1,1])
  </code></pre>
  
  <p><a href="https://i.stack.imgur.com/79U2b.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/79U2b.png" alt="This image shows the hack&#39;d method of forcing both catplots onto a single plot, it shows the deficiency of my implementation in that the labels, legends, and other children aren&#39;t coming for the ride/transfer"></a></p>