2017-01-28 11 views
0

Je ne suis pas en mesure de calculer des centralités pour un graphe pondéré NetworkX simple.
Est-ce normal ou je fais quelque chose de mal?Centralités dans le graphe pondéré networkx

-je ajouter des bords avec un add_edge(c[0],c[1],weight = my_values) simple, où c[0],c[1] sont des chaînes (noms des nœuds) et my_values entiers, dans une boucle. Ceci est un exemple des bords résultant:

('first node label', 'second node label', {'weight': 14}) 

(le nombre de nœuds does't vraiment d'importance - pour l'instant je garde seulement 20)

La liste de bord de mon graphique est une liste de tuples, avec (string_node1, string_node2, weight_dictionary) - tout semble bien, comme je suis en mesure de tirer/enregistrer/lire/le graphique ...

Pourquoi ?:

  • nx.degree_centrality me donne tous les 1 ?
  • nx.closeness_centrality me donne tous 1s?

exemple:

{'first node name': 1.0, 
... 
'last node name': 1.0} 

Merci pour votre aide.

+0

Si vous postez un exemple complet (non), il sera plus facile de découvrir le problème. – Aric

+0

ouais, je comprends, mais j'ai un peu peur de la sensibilité des données - des noms de personnes réelles, toujours en vie. Je peux dire que je viens de corriger ce 'problème' en ajoutant les poids ''weight'' à' nx.clustering', 'nx.degree_assortativity_coefficient' et' nx.betweenness_centrality' ... c'est pourquoi je me demande si je peux vraiment obtenir le degree_ pondéré avec les fonctions implémentées ... probablement je dois définir le mien, afin de calculer le degré pondéré ... même si cela me semble un peu bizarre – jjrr

Répondre

0

Il était facile:

au lieu d'utiliser nx.degree_centrality() J'utilise my_graph.degree(weight='weight') - encore, je pense que cela est un manque de base dans le module ...

... mais la question est encore ouverte pour nx.closeness_centrality