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 : {‘axes’, ‘dict’, ‘both’}, default ‘dict’

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

When grouping with by, a dict mapping columns to return_type
is returned.

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.