GridSpec on Seaborn Subplots

matplotlib, python, seaborn, subplot

Solution

As @dnalow mentioned, `seaborn` has no impact on `GridSpec`, as you pass a reference to the `Axes` object to the function. Like so:

import matplotlib.pyplot as plt
import seaborn.apionly as sns
import matplotlib.gridspec as gridspec

tips = sns.load_dataset("tips")

gridkw = dict(height_ratios=[5, 1])
fig, (ax1, ax2) = plt.subplots(2, 1, gridspec_kw=gridkw)

sns.distplot(tips.loc[:,'total_bill'], ax=ax1) #array, top subplot
sns.boxplot(tips.loc[:,'total_bill'], ax=ax2, width=.4) #bottom subplot

plt.show()

Problem

I currently have 2 subplots using seaborn: ``` import matplotlib.pyplot as plt import seaborn.apionly as sns f, (ax1, ax2) = plt.subplots(2, sharex=True) sns.distplot(df['Difference'].values, ax=ax1) #array, top subplot sns.boxplot(df['Difference'].values, ax=ax2, width=.4) #bottom subplot sns.stripplot([cimin, cimax], color='r', marker='d') #overlay confidence intervals over boxplot ax1.set_ylabel('Relative Frequency') #label only the top subplot plt.xlabel('Difference') plt.show() ``` Here is the output: I am rather stumped on how to make ax2 (the bottom figure) to become shorter relative to ax1 (the top figure). I was looking over the GridSpec (http://matplotlib.org/users/gridspec.html) documentation but I can't figure out how to apply it to seaborn objects. Question: - How do I make the bottom subplot shorter compared to the top subplot? - Incidentally, how do I move the plot's title "Distrubition of Difference" to go above the top subplot? Thank you for your time.

Original source