def plot_exposures(returns, positions, ax=None, **kwargs):
if ax is None:<EOL><INDENT>ax = plt.gca()<EOL><DEDENT>pos_no_cash = positions.drop('<STR_LIT>', axis=<NUM_LIT:1>)<EOL>l_exp = pos_no_cash[pos_no_cash > <NUM_LIT:0>].sum(axis=<NUM_LIT:1>) / positions.sum(axis=<NUM_LIT:1>)<EOL>s_exp = pos_no_cash[pos_no_cash < <NUM_LIT:0>].sum(axis=<NUM_LIT:1>) / positions.sum(axis=<NUM_LIT:1>)<EOL>net_exp = pos_no_cash.sum(axis=<NUM_LIT:1>) / positions.sum(axis=<NUM_LIT:1>)<EOL>ax.fill_between(l_exp.index,<EOL><NUM_LIT:0>,<EOL>l_exp.values,<EOL>label='<STR_LIT>', color='<STR_LIT>', alpha=<NUM_LIT:0.5>)<EOL>ax.fill_between(s_exp.index,<EOL><NUM_LIT:0>,<EOL>s_exp.values,<EOL>label='<STR_LIT>', color='<STR_LIT>', alpha=<NUM_LIT:0.5>)<EOL>ax.plot(net_exp.index, net_exp.values,<EOL>label='<STR_LIT>', color='<STR_LIT>', linestyle='<STR_LIT>')<EOL>ax.set_xlim((returns.index[<NUM_LIT:0>], returns.index[-<NUM_LIT:1>]))<EOL>ax.set_title("<STR_LIT>")<EOL>ax.set_ylabel('<STR_LIT>')<EOL>ax.legend(loc='<STR_LIT>', frameon=True, framealpha=<NUM_LIT:0.5>)<EOL>ax.set_xlabel('<STR_LIT>')<EOL>return ax<EOL>
Plots a cake chart of the long and short exposure.

Parameters
----------
returns : pd.Series
    Daily returns of the strategy, noncumulative.
     - See full explanation in tears.create_full_tear_sheet.
positions_alloc : pd.DataFrame
    Portfolio allocation of positions. See
    pos.get_percent_alloc.
ax : matplotlib.Axes, optional
    Axes upon which to plot.
**kwargs, optional
    Passed to plotting function.

Returns
-------
ax : matplotlib.Axes
    The axes that were plotted on.