def draw_MultipleLine(L, pos, ax, sg=None): for n in L: c = Circle(pos[n], radius=0.05, alpha=0.7) ax.add_patch(c) L.node[n]['patch'] = c x, y = pos[n] seen = {} for (u, v, d) in L.edges(data=True): n1 = L.node[u]['patch'] n2 = L.node[v]['patch'] rad = 0.1 if (u, v) in seen: rad = seen.get((u, v)) rad = (rad + np.sign(rad) * 0.1) * -1 alpha = 0.5 style = d['sty'] if style == 1: color = 'r' elif style == 2: color = 'b' elif style == 3: color = 'k' elif style == 4: color = 'y' elif style == 5: color = 'g' width = d['width'] line = width e = FancyArrowPatch(n1.center, n2.center, patchA=n1, patchB=n2, arrowstyle='-|>', connectionstyle='arc3,rad=%s' % rad, mutation_scale=10.0, lw=2, alpha=alpha, color=color) e.set_linewidth(line) e.set_label(line) seen[(u, v)] = rad ax.add_patch(e) return e