Ggraph: Stellung fixieren

Erstellt am 13. Jan. 2016  ·  3Kommentare  ·  Quelle: thomasp85/ggraph

Wir freuen uns auf die Entwicklung dieses Pakets!. Dies ist eher eine Feature-Anfrage als ein Problem. Ich habe mich nur gefragt, ob es möglich ist oder sein wird, die Position eines Netzwerklayouts zu fixieren. dh wenn Sie diesen Code erneut ausführen würden:

ggraph(graph = gr, layout = 'fr') + geom_edge_link(aes(size = weight), color = 'grey', alpha = 0.5) + geom_node_point(aes(color = class), size = 10) + coord_fixed() + ggforce::theme_no_axes()

dass das Layout immer gleich wäre? Ich glaube nicht, dass dies über igraph machbar ist, und vielleicht bedeutet das auch hier nicht möglich? Meine Begründung ist, dass es großartig wäre, dasselbe Netzwerk zeitlich aktualisieren zu können, um zu zeigen, wie sich Kanten ändern - dies wäre nur visuell sinnvoll, wenn die Knoten an derselben Stelle bleiben.

Hilfreichster Kommentar

Nur als Bonus für das Einreichen der ersten Ausgabe habe ich es für Sie sofort in 1a6447668dbe5723e08e41d70767073fdb8fea9a implementiert

Mach jetzt:

# do something to create a data.frame with x and y positions for your nodes (e.g. using createLayout)
ggraph(graph = gr, layout = 'manual', node.positions = nodes) + geom_edge_link()
# Where 'nodes' are the data.frame with the node position

Alle 3 Kommentare

Dies ist bereits möglich, wenn Sie das Layout im Voraus erstellen:

layout <- createLayout(graph = gr, layout = 'fr')
ggraph(data=layout) + geom_edge_link() # etc...

Ah ... Ich habe gerade Ihren Beitrag noch einmal gelesen. Sie möchten plotten - ändern Sie den Graphen und zeichnen Sie dann erneut ...? Das ist noch nicht ganz so einfach, aber ich werde in naher Zukunft sicherlich ein Layout = 'manual' hinzufügen. Sie können dies in igraph erreichen, indem Sie eine zweispaltige Matrix als Layout in der Plot-Funktion anstelle des Namens einer Layout-Funktion angeben ...

Derzeit wäre mit ggraph die Problemumgehung:

layout <- createLayout(graph = gr, layout = 'fr')
ggraph(data=layout) + geom_edge_link() # etc...

# do something to graph edges

attr(layout, 'graph') <- gr
ggraph(data=layout) + geom_edge_link() # etc...

Nur als Bonus für das Einreichen der ersten Ausgabe habe ich es für Sie sofort in 1a6447668dbe5723e08e41d70767073fdb8fea9a implementiert

Mach jetzt:

# do something to create a data.frame with x and y positions for your nodes (e.g. using createLayout)
ggraph(graph = gr, layout = 'manual', node.positions = nodes) + geom_edge_link()
# Where 'nodes' are the data.frame with the node position
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

gertstulp picture gertstulp  ·  3Kommentare

balthasarbickel picture balthasarbickel  ·  3Kommentare

Jim89 picture Jim89  ·  7Kommentare

zephyris picture zephyris  ·  4Kommentare

mbojan picture mbojan  ·  6Kommentare