'Plot the Tearsheet'

def plot_results(self, filename=None):

    rc = {'lines.linewidth': 1.0, 'axes.facecolor': '0.995', 'figure.facecolor': '0.97', 'font.family': 'serif', 'font.serif': 'Ubuntu', 'font.monospace': 'Ubuntu    Mono', 'font.size': 10, 'axes.labelsize': 10, 'axes.labelweight': 'bold', 'axes.titlesize': 10, 'xtick.labelsize': 8, 'ytick.labelsize': 8, 'legend.fontsize': 10, 'figure.titlesize': 12}
    sns.set_context(rc)
    sns.set_style('whitegrid')
    sns.set_palette('deep', desat=0.6)
    if self.rolling_sharpe:
        offset_index = 1
    else:
        offset_index = 0
    vertical_sections = (5 + offset_index)
    fig = plt.figure(figsize=(10, (vertical_sections * 3.5)))
    fig.suptitle(self.title, y=0.94, weight='bold')
    gs = gridspec.GridSpec(vertical_sections, 3, wspace=0.25, hspace=0.5)
    stats = self.get_results()
    ax_equity = plt.subplot(gs[:2, :])
    if self.rolling_sharpe:
        ax_sharpe = plt.subplot(gs[2, :])
    ax_drawdown = plt.subplot(gs[(2 + offset_index), :])
    ax_monthly_returns = plt.subplot(gs[(3 + offset_index), :2])
    ax_yearly_returns = plt.subplot(gs[((3 + offset_index), 2)])
    ax_txt_curve = plt.subplot(gs[((4 + offset_index), 0)])
    ax_txt_trade = plt.subplot(gs[((4 + offset_index), 1)])
    ax_txt_time = plt.subplot(gs[((4 + offset_index), 2)])
    self._plot_equity(stats, ax=ax_equity)
    if self.rolling_sharpe:
        self._plot_rolling_sharpe(stats, ax=ax_sharpe)
    self._plot_drawdown(stats, ax=ax_drawdown)
    self._plot_monthly_returns(stats, ax=ax_monthly_returns)
    self._plot_yearly_returns(stats, ax=ax_yearly_returns)
    self._plot_txt_curve(stats, ax=ax_txt_curve)
    self._plot_txt_trade(stats, ax=ax_txt_trade)
    self._plot_txt_time(stats, ax=ax_txt_time)
    plt.show(block=False)
    if (filename is not None):
        fig.savefig(filename, dpi=150, bbox_inches='tight')
