Есть ли способ гарантировать иерархический вывод из NetworkX?

Я пытаюсь создать блок-схему структуры дерева . Я смог создать репрезентативные графики с помощью networkx, но мне нужен способ показать структуру дерева при выводе графика. Я использую matplotlib.pylab для построения графика.

Мне нужно показать данные в структуре, аналогичной тому, что показано здесь . Хотя у меня нет подграфов -.

Как я могу гарантировать такую ​​структуру?

Примеры для неверующих:

Various NetworkX layouts

Я смог показать графики с помощью pylab и graphviz, но ни один из них не предлагает древовидную структуру, которую я ищу. Я перепробовал каждый макет, который может предложить networkx, но ни один из них не показывает иерархию . Я просто не уверен, какие параметры/режим дать ему ИЛИ , если мне нужно использовать веса. Любые предложения помогут кучу.

@jterrace:

Вот приблизительный план того, что я использовал для создания графиков выше. Я добавил несколько ярлыков, но в остальном это то же самое.

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()

71
задан max 26 November 2018 в 16:36
поделиться