docs: def plot_soma(ax, soma, plane='xy',
                soma_outline=True,
                linewidth=_LINEWIDTH,
                color=None, alpha=_ALPHA):
      '''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
      '''
      plane0, plane1 = _plane2col(plane)
      color = _get_color(color, tree_type=NeuriteType.soma)
  
      if isinstance(soma, SomaCylinders):
          plane0, plane1 = _plane2col(plane)
          for start, end in zip(soma.points, soma.points[1:]):
              common.project_cylinder_onto_2d(ax, (plane0, plane1),
                                              start=start[COLS.XYZ], end=end[COLS.XYZ],
                                              start_radius=start[COLS.R], end_radius=end[COLS.R],
                                              color=color, alpha=alpha)
      else:
          if soma_outline:
              ax.add_artist(Circle(soma.center[[plane0, plane1]], soma.radius,
                                   color=color, alpha=alpha))
          else:
              plane0, plane1 = _plane2col(plane)
              points = [(p[plane0], p[plane1]) for p in soma.iter()]
  
              if points:
                  points.append(points[0])  # close the loop
                  ax.plot(points, color=color, alpha=alpha, linewidth=linewidth)
  
      ax.set_xlabel(plane[0])
      ax.set_ylabel(plane[1])
  
      bounding_box = geom.bounding_box(soma)
      ax.dataLim.update_from_data_xy(np.vstack(([bounding_box[0][plane0], bounding_box[0][plane1]],
                                                [bounding_box[1][plane0], bounding_box[1][plane1]])),
                                     ignore=False)