def hist_frame(data, column=None, by=None, grid=True, xlabelsize=None,<EOL>xrot=None, ylabelsize=None, yrot=None, ax=None, sharex=False,<EOL>sharey=False, figsize=None, layout=None, bins=<NUM_LIT:10>, **kwds):
_raise_if_no_mpl()<EOL>_converter._WARN = False<EOL>if by is not None:<EOL><INDENT>axes = grouped_hist(data, column=column, by=by, ax=ax, grid=grid,<EOL>figsize=figsize, sharex=sharex, sharey=sharey,<EOL>layout=layout, bins=bins, xlabelsize=xlabelsize,<EOL>xrot=xrot, ylabelsize=ylabelsize,<EOL>yrot=yrot, **kwds)<EOL>return axes<EOL><DEDENT>if column is not None:<EOL><INDENT>if not isinstance(column, (list, np.ndarray, ABCIndexClass)):<EOL><INDENT>column = [column]<EOL><DEDENT>data = data[column]<EOL><DEDENT>data = data._get_numeric_data()<EOL>naxes = len(data.columns)<EOL>fig, axes = _subplots(naxes=naxes, ax=ax, squeeze=False,<EOL>sharex=sharex, sharey=sharey, figsize=figsize,<EOL>layout=layout)<EOL>_axes = _flatten(axes)<EOL>for i, col in enumerate(com.try_sort(data.columns)):<EOL><INDENT>ax = _axes[i]<EOL>ax.hist(data[col].dropna().values, bins=bins, **kwds)<EOL>ax.set_title(col)<EOL>ax.grid(grid)<EOL><DEDENT>_set_ticks_props(axes, xlabelsize=xlabelsize, xrot=xrot,<EOL>ylabelsize=ylabelsize, yrot=yrot)<EOL>fig.subplots_adjust(wspace=<NUM_LIT>, hspace=<NUM_LIT>)<EOL>return axes<EOL>
Make a histogram of the DataFrame's.

A `histogram`_ is a representation of the distribution of data.
This function calls :meth:`matplotlib.pyplot.hist`, on each series in
the DataFrame, resulting in one histogram per column.

.. _histogram: https://en.wikipedia.org/wiki/Histogram

Parameters
----------
data : DataFrame
    The pandas object holding the data.
column : string or sequence
    If passed, will be used to limit data to a subset of columns.
by : object, optional
    If passed, then used to form histograms for separate groups.
grid : bool, default True
    Whether to show axis grid lines.
xlabelsize : int, default None
    If specified changes the x-axis label size.
xrot : float, default None
    Rotation of x axis labels. For example, a value of 90 displays the
    x labels rotated 90 degrees clockwise.
ylabelsize : int, default None
    If specified changes the y-axis label size.
yrot : float, default None
    Rotation of y axis labels. For example, a value of 90 displays the
    y labels rotated 90 degrees clockwise.
ax : Matplotlib axes object, default None
    The axes to plot the histogram on.
sharex : bool, default True if ax is None else False
    In case subplots=True, share x axis and set some x axis labels to
    invisible; defaults to True if ax is None otherwise False if an ax
    is passed in.
    Note that passing in both an ax and sharex=True will alter all x axis
    labels for all subplots in a figure.
sharey : bool, default False
    In case subplots=True, share y axis and set some y axis labels to
    invisible.
figsize : tuple
    The size in inches of the figure to create. Uses the value in
    `matplotlib.rcParams` by default.
layout : tuple, optional
    Tuple of (rows, columns) for the layout of the histograms.
bins : integer or sequence, default 10
    Number of histogram bins to be used. If an integer is given, bins + 1
    bin edges are calculated and returned. If bins is a sequence, gives
    bin edges, including left edge of first bin and right edge of last
    bin. In this case, bins is returned unmodified.
**kwds
    All other plotting keyword arguments to be passed to
    :meth:`matplotlib.pyplot.hist`.

Returns
-------
matplotlib.AxesSubplot or numpy.ndarray of them

See Also
--------
matplotlib.pyplot.hist : Plot a histogram using matplotlib.

Examples
--------

.. plot::
    :context: close-figs

    This example draws a histogram based on the length and width of
    some animals, displayed in three bins

    >>> df = pd.DataFrame({
    ...     'length': [1.5, 0.5, 1.2, 0.9, 3],
    ...     'width': [0.7, 0.2, 0.15, 0.2, 1.1]
    ...     }, index= ['pig', 'rabbit', 'duck', 'chicken', 'horse'])
    >>> hist = df.hist(bins=3)