def plot_soma3d(ax, soma, color=None, alpha=_ALPHA):
color = _get_color(color, tree_type=NeuriteType.soma)<EOL>if isinstance(soma, SomaCylinders):<EOL><INDENT>for start, end in zip(soma.points, soma.points[<NUM_LIT:1>:]):<EOL><INDENT>common.plot_cylinder(ax,<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>common.plot_sphere(ax, center=soma.center[COLS.XYZ], radius=soma.radius,<EOL>color=color, alpha=alpha)<EOL><DEDENT>_update_3d_datalim(ax, soma)<EOL>
Generates a 3d figure of the soma.

    Args:
        ax(matplotlib axes): on what to plot
        soma(neurom.core.Soma): plotted soma
        color(str or None): Color of plotted values, None corresponds to default choice
        alpha(float): Transparency of plotted values