Use return_type='axes' to get a1.boxplot to return the matplotlib Axes object. Then pass these axes to the second boxplot call using ax=ax . This will cause both drawers to be drawn on the same axes.
a1=a[['kCH4_sync','week_days']] ax = a1.boxplot(by='week_days', meanline=True, showmeans=True, showcaps=True, showbox=True, showfliers=False, return_type='axes') a2 = a[['CH4_sync','week_days']] a2.boxplot(by='week_days', meanline=True, showmeans=True, showcaps=True, showbox=True, showfliers=False, ax=ax)
source share