igraph-Netzwerk-Layouts
Das Paket igraph bietet mehrere eingebaute Layout-Algorithmen zur Netzwerkvisualisierung. Je nach Größe eines Netzwerks können unterschiedliche Layouts die Struktur besser vermitteln. Ideal ist das Layout, das die Anzahl der sich kreuzenden Kanten im Netzwerk minimiert. In dieser Übung lernst du einige der vielen Standard-Layouts kennen. Das erneute Ausführen des Codes für jede Grafik erzeugt eine leicht unterschiedliche Variante desselben Layouttyps. Mehrfaches Ausprobieren hilft dir, die ansprechendste Visualisierung für dein Netzwerk zu finden.
Diese Übung ist Teil des Kurses
Netzwerkanalyse mit R
Anleitung zur Übung
- Ändere im Plot-Befehl das Argument
layoutzulayout_in_circle(), um ein Kreisnetzwerk zu erzeugen. - Ändere im Plot-Befehl das Argument
layoutzulayout_with_fr(), um ein Netzwerk mit dem Fruchterman-Reingold-Layout zu erzeugen. - Du kannst das Layout auch festlegen, indem du eine Matrix mit (x-, y-)Koordinaten für jeden Knoten übergibst. Hier verwendest du die Funktion
layout_as_tree(), um die Matrixmder Koordinaten zu erzeugen. Übergib anschließendman das Argumentlayoutinplot(), um zu zeichnen. - Die Wahl eines passenden Layouts kann verwirrend sein. Zum Glück hat
igraphdie Funktionlayout_nicely(), die versucht, für ein gegebenes Graph-Objekt die geeignetste Layout-Funktion zu wählen. Verwende diese Funktion, um die Matrixm1zu erzeugen, und zeichne das Netzwerk mit diesen Koordinaten.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
library(igraph)
# Plot the graph object g1 in a circle layout
plot(g1, vertex.label.color = "black", layout = ___(g1))
# Plot the graph object g1 in a Fruchterman-Reingold layout
plot(g1, vertex.label.color = "black", layout = ___(g1))
# Plot the graph object g1 in a Tree layout
m <- ___(g1)
plot(g1, vertex.label.color = "black", layout = m)
# Plot the graph object g1 using igraph's chosen layout
___ <- layout_nicely(___)
plot(___, vertex.label.color = "black", layout = ___)