class_docstr: Ribbon plot
  
  {usage}
  
  Parameters
  ----------
  {common_parameters}
  outline_type : Literal["upper", "lower", "both", "full"], default="both"
      How to stroke to outline of the region / area.
      If `upper`, draw only upper bounding line.
      If `lower`, draw only lower bounding line.
      If `both`, draw both upper & lower bounding lines.
      If `full`, draw closed polygon around the area.
code: def draw_unit(
      data: pd.DataFrame,
      panel_params: panel_view,
      coord: Coord,
      ax: Axes,
      **params: Any,
  ):
      size = data["size"].iloc[0] * SIZE_FACTOR
      fill = to_rgba(data["fill"], data["alpha"])
  
      if data["color"].isna().all():
          color: ColorsLike = "none"
      else:
          color = data["color"]
  
      if fill is None:
          fill = "none"
  
      if isinstance(coord, coord_flip):
          fill_between = ax.fill_betweenx
          _x, _min, _max = data["y"], data["xmin"], data["xmax"]
      else:
          fill_between = ax.fill_between
          _x, _min, _max = data["x"], data["ymin"], data["ymax"]
  
      # We only change this defaults for fill_between when necessary
      where = data.get("where", None)
      interpolate = not (where is None or where.all())  # type: ignore
  
      if params["outline_type"] != "full":
          size = 0
          color = "none"
  
      fill_between(
          _x,
          _min,
          _max,
          where=where,  # type: ignore
          interpolate=interpolate,
          facecolor=fill,
          edgecolor=color,
          linewidth=size,
          linestyle=data["linetype"].iloc[0],
          zorder=params["zorder"],
          rasterized=params["raster"],
      )
  
      # Alpha does not affect the outlines
      data["alpha"] = 1
      geom_ribbon._draw_outline(data, panel_params, coord, ax, **params)
  
file_path: plotnine/plotnine/geoms/geom_ribbon.py
imports: from __future__ import annotations
  import typing
  from .._utils import SIZE_FACTOR, to_rgba
  from ..coords import coord_flip
  from ..doctools import document
  from ..exceptions import PlotnineError
  from .geom import geom
  from .geom_path import geom_path
  from .geom_polygon import geom_polygon
label_desc: Use image node_id 4 for calling the geom_ribbon obj's underlying member method code with example usage: obj.draw_unit(data, panel_params, coord, ax) without return types