2017-05-07 2 views
0

Je sais qu'il existe une méthode d'utilisation de la liste des nœuds pour créer un sous-graphe. Mais je veux savoir s'il existe un moyen d'utiliser les arêtes pour créer un sous-graphe. Je crée maintenant un MultiDiGraph. En fait, quand je l'appelle impression (G.edges (data = True)) le résultat est que beuglement:Comment créer un sous-graphe en utilisant les attributs des arêtes

[(1, 64, {'agent id': 1875}), (1, 64, {'agent id': 936}), (1, 75, {'agent id': 199}), (1, 75, {'agent id': 496}), (1, 4, {'agent id': 496}), (1, 81, {'agent id': 563}), (1, 459, {'agent id': 496})] 

Maintenant, je veux créer des sous-graphes pour chaque « id agent », et comment puis-je faire? Merci beaucoup!

Répondre

0

Commencez par collecter tous les bords souhaités en utilisant une liste de compréhension. Ensuite, créez un nouveau graphique et ajoutez-y les bords.

edges = [(u,v,d) for u,v,d in G.edges(data = True) if d['agent id'] = x] 

H = nx.multiDiGraph() 
H.add_edges_from(edges) 
+0

Merci beaucoup! Et j'ai aussi une question que j'ai tellement 'agent id', et j'ai besoin d'utiliser "pour le cercle" pour créer des sous-graphes pour chaque 'identifiant d'agent' automatiquement. Maintenant, j'ai une liste de 'agent ID', alors comment puis-je le faire? –