'Tabulate the given samples from the frequency distribution (cumulative),
displaying the most frequent sample first.  If an integer
parameter is supplied, stop after this many samples have been
plotted.
:param samples: The samples to plot (default is all samples)
:type samples: list
:param cumulative: A flag to specify whether the freqs are cumulative (default = False)
:type title: bool'

def tabulate(self, *args, **kwargs):

    if (len(args) == 0):
        args = [len(self)]
    samples = [item for (item, _) in self.most_common(*args)]
    cumulative = _get_kwarg(kwargs, u'cumulative', False)
    if cumulative:
        freqs = list(self._cumulative_frequencies(samples))
    else:
        freqs = [self[sample] for sample in samples]
    width = max((len((u'%s' % s)) for s in samples))
    width = max(width, max((len((u'%d' % f)) for f in freqs)))
    for i in range(len(samples)):
        print((u'%*s' % (width, samples[i])), end=u'    ')
    print()
    for i in range(len(samples)):
        print((u'%*d' % (width, freqs[i])), end=u'    ')
    print()
