Wie man richtig networkx Graphen zeichnet

Ich habe diesen Code, mit dem ich ein Diagramm wie das unten stehende zeichnen kann

import networkx as nx
import pylab as plt
from networkx.drawing.nx_agraph import graphviz_layout


G = nx.DiGraph()
G.add_node(1,level=1)
G.add_node(2,level=2)
G.add_node(3,level=2)
G.add_node(4,level=3)

G.add_edge(1,2)
G.add_edge(1,3)
G.add_edge(2,4)

nx.draw(G, pos=graphviz_layout(G), node_size=1600, cmap=plt.cm.Blues,
        node_color=range(len(G)),
        prog='dot')
plt.show()

Frage ist, wie könnte ich den Graphen mit Knoten zeichnen, die:

Verwenden Sie die weiße HintergrundfarbeLabels in @ habHaben Pfeile @ gericht Optional zeigen die Pfeile ein bestimmtes GewichtSind entweder automatisch oder manuell übersichtlich angeordnet

Etwas Ähnliches wie das Bild unten

Wie Sie in diesem Bild sehen können, sind die Knoten wirklich gut ausgerichtet

Antworten auf die Frage(2)

Ihre Antwort auf die Frage