Färben von Kanten nach Gewicht in networkx

Ich habe hier nur etwas Ähnliches gefunden:

Einfärben der Kanten von networkx nach Gewicht

Ich kann das jedoch nicht auf mein Problem anwenden. Ich habe ein Diagramm mit gewichteten Kanten, aber die Gewichte sind nicht eindeutig (es gibt also etwa 15 Kanten mit der Gewichtung 1). Ich möchte meine Kanten basierend auf dem Gewicht, das sie haben, färben. Je geringer das Gewicht, desto heller die Farbe.

Ich habe versucht, die in der obigen Frage vorgeschlagene Methode anzuwenden, aber nach meinem Verständnis müssen die Gewichte an jeder Kante eindeutig sein.

Bisher habe ich eine Liste in aufsteigender Reihenfolge der verschiedenen Kantengewichte erstellt und wollte diese verwenden, um die möglichen Kantenfarben zu klassifizieren. Ich versuche, das Zeichnen der Kanten nach Gewicht zu vermeiden, da ich möglicherweise in Zukunft ein sehr großes Diagramm mit einem großen Gewichtungsbereich an den Kanten zeichnen muss.

Wenn es unklar ist, lass es mich in den Kommentaren wissen und ich gebe genauere Informationen.

Vielen Dank!

EDIT: def draw_graph (target): nlist = [target] + G.Nachbarn (target) H = nx.subgraph (G, nlist) n = H )

pos = nx.spring_layout(H)
nx.draw(H, pos, node_color='#A0CBE2',edge_color=colours, node_size=100, edge_cmap=plt.cm.Blues, width=0.5, with_labels=False)
nx.draw_networkx_edge_labels(H, pos, edge_labels=labels)
plt.savefig("Graphs/edge_colormap_%s.png" % target) # save as png
plt.show() # display
pass

def colour_and_label_edges(graph):
    d={}
    for (u,v) in graph.edges():
        d[u,v]=graph[u][v]['weight']
    temp=[]
    for val in d.values():
        if val not in temp:
            temp.append(val)
    weights = sorted(temp,key=int)
    return d, weights

Der obige Code ist unvollständig, aber die Idee ist, dass die Funktion mir eine Liste der Gewichte gibt.

[1, 2, 3, 4, 5, 6, 9, 10, 16, 21, 47, 89, 124, 134, 224]

Ich möchte diese Liste dann verwenden, um jedem Gewicht eine Farbe zuzuweisen. Je höher das Gewicht, desto dunkler die Farbe. (Ich habe für dieses Beispiel einen sehr kleinen Teilgraphen in Bezug auf den Datensatz verwendet). Hoffe das klärt ein wenig auf: S

Antworten auf die Frage(1)

Ihre Antwort auf die Frage