Make a box plot from DataFrame column optionally grouped by some columns or
other inputs

Parameters:

data : the pandas object holding the data

column : column name or list of names, or vector

Can be any valid input to groupby

by : string or sequence

Column in the DataFrame to group by

ax : Matplotlib axes object, optional

fontsize : int or string

rot : label rotation angle

figsize : A tuple (width, height) in inches

grid : Setting this to True will show the grid

layout : tuple (optional)

(rows, columns) for the layout of the plot

return_type : {None, ‘axes’, ‘dict’, ‘both’}, default None

The kind of object to return. The default is axes
‘axes’ returns the matplotlib axes the boxplot is drawn on;
‘dict’ returns a dictionary whose values are the matplotlib
Lines of the boxplot;
‘both’ returns a namedtuple with the axes and dict.

When grouping with by, a Series mapping columns to return_type
is returned, unless return_type is None, in which case a NumPy
array of axes is returned with the same shape as layout.
See the prose documentation for more.

kwds : other plotting keyword arguments to be passed to matplotlib boxplot

function

Returns:

lines : dict

ax : matplotlib Axes

(ax, lines): namedtuple

Notes

Use return_type='dict' when you want to tweak the appearance
of the lines after plotting. In this case a dict containing the Lines
making up the boxes, caps, fliers, medians, and whiskers is returned.