class_docstr: Define arrow (actually an arrowhead)
  
  This is used to define arrow heads for
  [](`~plotnine.geoms.geom_path`).
  
  Parameters
  ----------
  angle :
      angle in degrees between the tail a
      single edge.
  length :
      of the edge in "inches"
  ends :
      At which end of the line to draw the
      arrowhead
  type :
      When it is closed, it is also filled
class_docstr_tok: ["Define","arrow","(","actually","an","arrowhead",")","This","is","used","to","define","arrow","heads","for","[","]","(","`","~plotnine.geoms.geom_path","`",")",".","Parameters","--","--","--","--","--","angle",":","angle","in","degrees","between","the","tail","a","single","edge",".","length",":","of","the","edge","in","``","inches","''","ends",":","At","which","end","of","the","line","to","draw","the","arrowhead","type",":","When","it","is","closed",",","it","is","also","filled"]
code: def __init__(
      self,
      angle: float = 30,
      length: float = 0.2,
      ends: Literal["first", "last", "both"] = "last",
      type: Literal["open", "closed"] = "open",
  ):
      self.angle = angle
      self.length = length
      self.ends = ends
      self.type = type
  
imports: from __future__ import annotations
  import typing
  from collections import Counter
  from contextlib import suppress
  from warnings import warn
  import numpy
  from .._utils import SIZE_FACTOR, make_line_segments, match, to_rgba
  from ..doctools import document
  from ..exceptions import PlotnineWarning
  from .geom import geom
label_desc: Use image node_id 1 to create a new arrow object  with example: obj = arrow(angle, length, ends, type)