def barh(self, column_for_categories=None, select=None, overlay=True, width=<NUM_LIT:6>, **vargs):
options = self.default_options.copy()<EOL>vargs['<STR_LIT>'] = '<STR_LIT>'<EOL>options.update(vargs)<EOL>yticks, labels = self._split_column_and_labels(column_for_categories)<EOL>if select is not None:<EOL><INDENT>labels = self._as_labels(select)<EOL><DEDENT>n = len(labels)<EOL>index = np.arange(self.num_rows)<EOL>margin = <NUM_LIT:0.1><EOL>bwidth = <NUM_LIT:1> - <NUM_LIT:2> * margin<EOL>if overlay:<EOL><INDENT>bwidth /= len(labels)<EOL><DEDENT>if '<STR_LIT>' in options:<EOL><INDENT>height = options.pop('<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>height = max(<NUM_LIT:4>, len(index)/<NUM_LIT:2>)<EOL><DEDENT>def draw(axis, label, color):<EOL><INDENT>if overlay:<EOL><INDENT>ypos = index + margin + (<NUM_LIT:1>-<NUM_LIT:2>*margin)*(n - <NUM_LIT:1> - labels.index(label))/n<EOL><DEDENT>else:<EOL><INDENT>ypos = index<EOL><DEDENT>axis.barh(ypos, self[label][::-<NUM_LIT:1>], bwidth,  color=color, **options)<EOL><DEDENT>ylabel = self._as_label(column_for_categories)<EOL>def annotate(axis, ticks):<EOL><INDENT>axis.set_yticks(index+<NUM_LIT:0.5>) <EOL>axis.set_yticklabels(ticks[::-<NUM_LIT:1>], stretch='<STR_LIT>')<EOL>axis.set_xlabel(axis.get_ylabel())<EOL>axis.set_ylabel(ylabel)<EOL><DEDENT>self._visualize('<STR_LIT>', labels, yticks, overlay, draw, annotate, width=width, height=height)<EOL>
Plot horizontal bar charts for the table.

        Args:
            ``column_for_categories`` (``str``): A column containing y-axis categories
                used to create buckets for bar chart.

        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.barh`.
                See http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.barh
                for additional arguments that can be passed into vargs.

        Raises:
            ValueError -- Every selected except column for ``column_for_categories``
                must be numerical.

        Returns:
            Horizontal bar graph with buckets specified by ``column_for_categories``.
            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``).

        >>> t = Table().with_columns(
        ...     'Furniture', make_array('chairs', 'tables', 'desks'),
        ...     'Count', make_array(6, 1, 2),
        ...     'Price', make_array(10, 20, 30)
        ...     )
        >>> t
        Furniture | Count | Price
        chairs    | 6     | 10
        tables    | 1     | 20
        desks     | 2     | 30
        >>> furniture_table.barh('Furniture') # doctest: +SKIP
        <bar graph with furniture as categories and bars for count and price>
        >>> furniture_table.barh('Furniture', 'Price') # doctest: +SKIP
        <bar graph with furniture as categories and bars for price>
        >>> furniture_table.barh('Furniture', make_array(1, 2)) # doctest: +SKIP
        <bar graph with furniture as categories and bars for count and price>