def plot_soma(ax, soma, plane='<STR_LIT>',<EOL>soma_outline=True,<EOL>linewidth=_LINEWIDTH,<EOL>color=None, alpha=_ALPHA):
plane0, plane1 = _plane2col(plane)<EOL>color = _get_color(color, tree_type=NeuriteType.soma)<EOL>if isinstance(soma, SomaCylinders):<EOL><INDENT>plane0, plane1 = _plane2col(plane)<EOL>for start, end in zip(soma.points, soma.points[<NUM_LIT:1>:]):<EOL><INDENT>common.project_cylinder_onto_2d(ax, (plane0, plane1),<EOL>start=start[COLS.XYZ], end=end[COLS.XYZ],<EOL>start_radius=start[COLS.R], end_radius=end[COLS.R],<EOL>color=color, alpha=alpha)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>if soma_outline:<EOL><INDENT>ax.add_artist(Circle(soma.center[[plane0, plane1]], soma.radius,<EOL>color=color, alpha=alpha))<EOL><DEDENT>else:<EOL><INDENT>plane0, plane1 = _plane2col(plane)<EOL>points = [(p[plane0], p[plane1]) for p in soma.iter()]<EOL>if points:<EOL><INDENT>points.append(points[<NUM_LIT:0>])  <EOL>ax.plot(points, color=color, alpha=alpha, linewidth=linewidth)<EOL><DEDENT><DEDENT><DEDENT>ax.set_xlabel(plane[<NUM_LIT:0>])<EOL>ax.set_ylabel(plane[<NUM_LIT:1>])<EOL>bounding_box = geom.bounding_box(soma)<EOL>ax.dataLim.update_from_data_xy(np.vstack(([bounding_box[<NUM_LIT:0>][plane0], bounding_box[<NUM_LIT:0>][plane1]],<EOL>[bounding_box[<NUM_LIT:1>][plane0], bounding_box[<NUM_LIT:1>][plane1]])),<EOL>ignore=False)<EOL>
Generates a 2d figure of the soma.

    Args:
        ax(matplotlib axes): on what to plot
        soma(neurom.core.Soma): plotted soma
        plane(str): Any pair of 'xyz'
        diameter_scale(float): Scale factor multiplied with segment diameters before plotting
        linewidth(float): all segments are plotted with this width, but only if diameter_scale=None
        color(str or None): Color of plotted values, None corresponds to default choice
        alpha(float): Transparency of plotted values