Cómo mostrar los ciclos en el dibujo del gráfico networkx

Tengo un gráfico simple construido usando NetworkX de la siguiente manera:

import networkx as nx import matplotlib.pyplot as plt G = nx.DiGraph() G.add_edges_from([(0,1), (0,2), (1,1), (1,2)]) nx.draw_networkx(G) plt.show() 

Cuando dibujo esta gráfica, obtengo esta imagen:

introduzca la descripción de la imagen aquí

El gráfico también tiene un borde (1,1) pero no muestra este borde en la imagen. ¿Cómo puedo dibujar este borde, también? Creo que este es el resultado de no usar flechas. Esta visualización es realmente muy mala. ¿Cómo puedo usar flechas en lugar de estas líneas en negrita?

Graphviz hace un gran trabajo de dibujar flechas y bucles propios. (No trivial para implementar en matplotlib). Aquí hay un ejemplo:

 import networkx as nx import matplotlib.pyplot as plt G = nx.DiGraph() G.add_edges_from(\[(0,1), (0,2), (1,1), (1,2)\]) nx.write_dot(G,'graph.dot') # then run dot -Tpng graph.dot > graph.png 

introduzca la descripción de la imagen aquí