code: def draw_edges(self):
          
          for i, (start, end) in enumerate(self.graph.edges()):
              start_idx = self.nodes.index(start)
              start_x = self.node_coords["x"][start_idx]
              start_y = self.node_coords["y"][start_idx]
  
              end_idx = self.nodes.index(end)
              end_x = self.node_coords["x"][end_idx]
              end_y = self.node_coords["y"][end_idx]
  
              arc_radius = abs(end_x - start_x) / 2
              # we do min(start_x, end_x) just in case start_x is greater than
              # end_x.
              middle_x = min(start_x, end_x) + arc_radius
              middle_y = arc_radius * 2
  
              verts = [(start_x, start_y), (middle_x, middle_y), (end_x, end_y)]
  
              color = self.edge_colors[i]
              codes = [Path.MOVETO, Path.CURVE3, Path.CURVE3]
              lw = self.edge_widths[i]
              path = Path(verts, codes)
              patch = patches.PathPatch(
                  path, lw=lw, edgecolor=color, zorder=1, **self.edgeprops
              )
              self.ax.add_patch(patch)
docs: Renders edges to the figure.