class_docstr: Static class which draws circular vertices
class_docstr_tok: ["Static","class","which","draws","circular","vertices"]
docstr: Draws a circular path on the Cairo context without stroking or
  filling it.
  
  Height is ignored, it is the width that determines the diameter of the circle.
  
  @see: ShapeDrawer.draw_path
docstr_tok: ["Draws","a","circular","path","on","the","Cairo","context","without","stroking","or","filling","it",".","Height","is","ignored",",","it","is","the","width","that","determines","the","diameter","of","the","circle",".","@","see",":","ShapeDrawer.draw_path"]
code: def draw_path(ctx, center_x, center_y, width, height=None, **kwargs):
      """Draws a circular path on the Cairo context without stroking or
      filling it.
  
      Height is ignored, it is the width that determines the diameter of the circle.
  
      @see: ShapeDrawer.draw_path"""
      if hasattr(plt, "Axes") and isinstance(ctx, plt.Axes):
          return mpl.patches.Circle(
              (0, 0),
              width / 2,
              clip_on=True,
              **kwargs,
          )
      else:
          ctx.arc(center_x, center_y, width / 2, 0, 2 * pi)
  
imports: from abc import ABCMeta, abstractmethod
  from math import atan2, copysign, cos, pi, sin
  import sys
  from igraph.drawing.matplotlib.utils import find_matplotlib
label_desc: Use image node_id 1 for calling the CircleDrawer obj's underlying member method code with example usage: obj.draw_path(ctx, center_x, center_y, width, height) and returns: mpl