code: def _draw_ellipse(data, obj, draw_options):
      
      if isinstance(obj, mpl.patches.Circle):
          # circle specialization
          return _draw_circle(data, obj, draw_options)
      x, y = obj.center
      ff = data["float format"]
  
      if obj.angle != 0:
          fmt = "rotate around={{" + ff + ":(axis cs:" + ff + "," + ff + ")}}"
          draw_options.append(fmt.format(obj.angle, x, y))
  
      cont = (
          "\\draw[{}] (axis cs:"
          + ff
          + ","
          + ff
          + ") ellipse ("
          + ff
          + " and "
          + ff
          + ");\n"
      ).format(",".join(draw_options), x, y, 0.5 * obj.width, 0.5 * obj.height)
      return data, cont
docs: Return the PGFPlots code for ellipses.