simetrico que objeto nodo grafico diseño layout graph nodes graphviz

layout - que - Biblioteca de diseño de gráfico de nodo para gráficos incrementales



que es un nodo simetrico (1)

Puedes hacer esto en graphviz al revés , si eso es útil para ti. Para hacer eso, primero style=invis el gráfico de la derecha y luego trazaría el gráfico de la izquierda con los nodos 15, 16 y 17 configurados en style=invis . Eso le daría el mismo diseño que se muestra aquí.

Un problema que pude percibir al trazar el gráfico de la izquierda primero es que el software ( dot u otra cosa) trataría naturalmente de trazar un gráfico "bonito" sin los nodos 15, 16 y 17 y que podría no dejar suficiente espacio para los nodos 15, 16 y 17 que se instalarán si se necesitan más tarde. Por ejemplo, si tratamos de insertar un nodo 12a entre los nodos 11 y 12, no habría espacio para ese nodo en los gráficos mostrados anteriormente. Por otro lado, si el nodo 12a se trazó inicialmente pero invisible, entonces el software asignaría el espacio para ello, donde podría incluirse más tarde.

Estoy buscando una biblioteca a la que se puedan suministrar nodos y bordes y que genere una lista de coordenadas de todos los nodos bien distribuidos. Sin embargo, debería ser posible proporcionar posiciones fijas para algunos , pero no para todos los nodos, que el algoritmo de diseño debería respetar.

He intentado graphviz (fdp, neato) hasta ahora, que no parece ser capaz de mantener la posición de ciertos nodos y construyó el diseño a su alrededor.

La biblioteca tiene que ser utilizable con python, por lo que debe ser python o c / c ++ para que podamos escribir nuestro propio enlace.

Las siguientes imágenes ilustran exactamente lo que estoy buscando (este es el proyecto uDraw, que no parece existir como una biblioteca).