Estoy tratando de producir un diagrama de flujo de una estructura árbol. He podido crear gráficos representativos con networkx, pero necesito una forma de mostrar la estructura del árbol cuando genero un gráfico. Estoy usando matplotlib.pylab para trazar el gráfico.¿Hay alguna forma de garantizar una salida jerárquica desde NetworkX?
Necesito mostrar los datos en una estructura similar a la que se muestra here. Aunque no tengo sub-gráficos.
¿Cómo puedo garantizar una estructura como esa?
Ejemplos para los incrédulos:
que he sido capaz de mostrar los gráficos con pylab y graphviz, pero no ofrecerán la estructura de árbol que estoy buscando. He intentado todos los diseños que networkx tiene para ofrecer, pero ninguno de ellos muestra una jerarquía . Simplemente no estoy seguro de qué opciones /modo para darle O si necesito usar pesos. Cualquier sugerencia ayudaría mucho.
@jterrace:
Aquí hay un esbozo de lo que he utilizado para producir las parcelas anteriormente. He agregado algunas etiquetas, pero aparte de eso, es lo mismo.
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()
¡Ah, ja! Así que todo lo que necesitaba era un gráfico dirigido con el diseño 'punto'. Sabía que era algo muy pequeño. Muchas gracias Aric! – max
¿Hay alguna buena manera de etiquetar los nodos de forma ascendente? Con eso quiero decir, creo un gráfico 'g = nx.full_rary_tree (2, 10)' Si imprimo los bordes obtengo: '[(0, 1), (0, 2), (1, 3), (1, 4), (2, 5), ...] 'pero los visualizará en un orden diferente ... – CodeKingPlusPlus
¿Qué orden desea? Ver bfs_edges() y dfs_edges(). – Aric