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_outline(
      data: pd.DataFrame,
      panel_params: panel_view,
      coord: Coord,
      ax: Axes,
      **params: Any,
  ):
      outline_type = params["outline_type"]
  
      if outline_type == "full":
          return
  
      x, y = "x", "y"
      if isinstance(coord, coord_flip):
          x, y = y, x
          data[x], data[y] = data[y], data[x]
  
      if outline_type in ("lower", "both"):
          geom_path.draw_group(
              data.eval(f"y = {y}min"),
              panel_params,
              coord,
              ax,
              **params,
          )
  
      if outline_type in ("upper", "both"):
          geom_path.draw_group(
              data.eval(f"y = {y}max"),
              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 5 for calling the geom_ribbon obj's underlying member method code with example usage: obj._draw_outline(data, panel_params, coord, ax) without return types