2015-08-04 7 views
5

Ich versuche, ein zufälliges Networkx-Diagramm zu erstellen, wobei jede Kante ein zufälliges Gewicht (Länge) hat.So erstellen Sie ein zufälliges Netzwerkx-Diagramm mit zufälligen Gewichten

Im Moment bin ich mit der gnm_random_graph Funktion aus dem Satz von networkx graph generators:

g=nx.gnm_random_graph(5,5) 

Allerdings habe ich die Zufalls Gewichte hinzufügen bin zu kämpfen. Mein Versuch basiert auf Antworten auf this question.

for u,v,w in in g.edges(data=True): 
    w = np.random.randint(0,10) 

Ich mache das, damit ich die networkx-Bibliothek erforschen und (hoffentlich) verstehen kann.

Meine Frage hat zwei Teile:

1. Was ist der beste Weg, eine einfache NetworkX Graph zum Beispiel Zwecke generieren?

2. Was ist der beste Weg, um Gewichtungen zu einem vorhandenen Netzwerkx-Diagramm hinzuzufügen?

Antwort

3
Adressierung

Gerade Frage 2 (Q1 auf Kontext sehr abhängig ist)

Sie

import random 
#code creating G here 
for (u, v) in G.edges(): 
    G.edge[u][v]['weight'] = random.randint(0,10) 

oder verwenden

for (u,v,w) in G.edges(data=True): 
    w['weight'] = random.randint(0,10) 

Die Variable w ist ein Wörterbuch alle, deren Schlüssel verwenden könnten, sind die verschiedenen Kantenattribute.

+0

Erwähnen Sie "Import zufällig". – Zubo

+1

@zubo Danke. Erledigt. – Joel