98 votes

Existe-t-il un moyen de garantir une sortie hiérarchique à partir de NetworkX ?

J'essaie de produire un diagramme de flux d'une arbre structure. J'ai été en mesure de créer des graphiques représentatifs avec networkx, mais j'ai besoin d'un moyen de montrer la structure de l'entreprise. arbre lorsque je produis une parcelle. J'utilise matplotlib.pylab pour tracer le graphique.

J'ai besoin de montrer les données dans une structure similaire à ce qui est montré aquí . Bien que je n'aie pas de sous-graphes.

Comment puis-je garantir une telle structure ?

Des exemples pour les non-croyants :

Various NetworkX layouts

J'ai pu afficher les graphiques avec pylab et graphviz, mais aucun n'offre l'arborescence que je recherche. J'ai essayé toutes les mises en page proposées par Networkx, mais aucune n'affiche une structure arborescente. hiérarchie . Je ne suis pas sûr de ce que options/mode pour lui donner OU si je dois utiliser des poids. Toute suggestion serait d'une grande aide.

@jterrace :

Voici un aperçu de ce que j'ai utilisé pour produire les graphiques ci-dessus. J'ai ajouté quelques étiquettes, mais pour le reste, c'est la même chose.

import networkx as nx
import matplotlib.pyplot as plt
G = nx.Graph()

G.add_node("ROOT")

for i in xrange(5):
    G.add_node("Child_%i" % i)
    G.add_node("Grandchild_%i" % i)
    G.add_node("Greatgrandchild_%i" % i)

    G.add_edge("ROOT", "Child_%i" % i)
    G.add_edge("Child_%i" % i, "Grandchild_%i" % i)
    G.add_edge("Grandchild_%i" % i, "Greatgrandchild_%i" % i)

plt.title("draw_networkx")
nx.draw_networkx(G)

plt.show()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X