def bar(self, column_for_categories=None, select=None, overlay=True, width=<NUM_LIT:6>, height=<NUM_LIT:4>, **vargs):
options = self.default_options.copy()<EOL>vargs['<STR_LIT>'] = '<STR_LIT>'<EOL>options.update(vargs)<EOL>xticks, labels = self._split_column_and_labels(column_for_categories)<EOL>if select is not None:<EOL><INDENT>labels = self._as_labels(select)<EOL><DEDENT>index = np.arange(self.num_rows)<EOL>def draw(axis, label, color):<EOL><INDENT>axis.bar(index-<NUM_LIT:0.5>, self[label], <NUM_LIT:1.0>, color=color, **options)<EOL><DEDENT>def annotate(axis, ticks):<EOL><INDENT>if (ticks is not None) :<EOL><INDENT>tick_labels = [ticks[int(l)] if <NUM_LIT:0><=l<len(ticks) else '<STR_LIT>' for l in axis.get_xticks()]<EOL>axis.set_xticklabels(tick_labels, stretch='<STR_LIT>')<EOL><DEDENT><DEDENT>self._visualize(column_for_categories, labels, xticks, overlay, draw, annotate, width=width, height=height)<EOL>
Plot bar charts for the table.

        Each plot is labeled using the values in `column_for_categories` and
        one plot is produced for every other column (or for the columns
        designated by `select`).

        Every selected column except `column_for_categories` must be numerical.

        Args:
            column_for_categories (str): A column containing x-axis categories

        Kwargs:
            overlay (bool): create a chart with one color per data column;
                if False, each will be displayed separately.

            vargs: Additional arguments that get passed into `plt.bar`.
                See http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.bar
                for additional arguments that can be passed into vargs.