pandas.core.groupby.DataFrameGroupBy.boxplot

DataFrameGroupBy.boxplot(grouped, subplots=True, column=None, fontsize=None, rot=0, grid=True, ax=None, figsize=None, layout=None, sharex=False, sharey=True, **kwds)[source]

Make box plots from DataFrameGroupBy data.

Parameters:
grouped : Grouped DataFrame
subplots : bool
  • False - no subplots will be used
  • True - create a subplot for each group
column : column name or list of names, or vector

Can be any valid input to groupby

fontsize : int or string
rot : label rotation angle
grid : Setting this to True will show the grid
ax : Matplotlib axis object, default None
figsize : A tuple (width, height) in inches
layout : tuple (optional)

(rows, columns) for the layout of the plot

sharex : bool, default False

Whether x-axes will be shared among subplots

New in version 0.23.1.

sharey : bool, default True

Whether y-axes will be shared among subplots

New in version 0.23.1.

`**kwds` : Keyword Arguments

All other plotting keyword arguments to be passed to matplotlib’s boxplot function

Returns:
dict of key/value = group key/DataFrame.boxplot return value
or DataFrame.boxplot return value in case subplots=figures=False

Examples

>>> import itertools
>>> tuples = [t for t in itertools.product(range(1000), range(4))]
>>> index = pd.MultiIndex.from_tuples(tuples, names=['lvl0', 'lvl1'])
>>> data = np.random.randn(len(index),4)
>>> df = pd.DataFrame(data, columns=list('ABCD'), index=index)
>>>
>>> grouped = df.groupby(level='lvl1')
>>> boxplot_frame_groupby(grouped)
>>>
>>> grouped = df.unstack(level='lvl1').groupby(level=0, axis=1)
>>> boxplot_frame_groupby(grouped, subplots=False)
Scroll To Top