def _visualize(self, x_label, y_labels, ticks, overlay, draw, annotate, width=<NUM_LIT:6>, height=<NUM_LIT:4>):
for label in y_labels:<EOL><INDENT>if not all(isinstance(x, numbers.Real) for x in self[label]):<EOL><INDENT>raise ValueError("<STR_LIT>"<EOL>"<STR_LIT>"<EOL>.format(label))<EOL><DEDENT><DEDENT>n = len(y_labels)<EOL>colors = list(itertools.islice(itertools.cycle(self.chart_colors), n))<EOL>if overlay and n > <NUM_LIT:1>:<EOL><INDENT>_, axis = plt.subplots(figsize=(width, height))<EOL>if x_label is not None:<EOL><INDENT>axis.set_xlabel(x_label)<EOL><DEDENT>for label, color in zip(y_labels, colors):<EOL><INDENT>draw(axis, label, color)<EOL><DEDENT>if ticks is not None:<EOL><INDENT>annotate(axis, ticks)<EOL><DEDENT>axis.legend(y_labels, loc=<NUM_LIT:2>, bbox_to_anchor=(<NUM_LIT>, <NUM_LIT:1>))<EOL>type(self).plots.append(axis)<EOL><DEDENT>else:<EOL><INDENT>fig, axes = plt.subplots(n, <NUM_LIT:1>, figsize=(width, height*n))<EOL>if not isinstance(axes, collections.Iterable):<EOL><INDENT>axes=[axes]<EOL><DEDENT>for axis, y_label, color in zip(axes, y_labels, colors):<EOL><INDENT>draw(axis, y_label, color)<EOL>axis.set_ylabel(y_label, fontsize=<NUM_LIT:16>)<EOL>if x_label is not None:<EOL><INDENT>axis.set_xlabel(x_label, fontsize=<NUM_LIT:16>)<EOL><DEDENT>if ticks is not None:<EOL><INDENT>annotate(axis, ticks)<EOL><DEDENT>type(self).plots.append(axis)<EOL><DEDENT><DEDENT>
Generic visualization that overlays or separates the draw function.

        Raises:
            ValueError: The Table contains non-numerical values in columns
            other than `column_for_categories`