LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Ändere im Plot-Befehl das Argument layout zu layout_in_circle(), um ein Kreisnetzwerk zu erzeugen.
  • Ändere im Plot-Befehl das Argument layout zu layout_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 Matrix m der Koordinaten zu erzeugen. Übergib anschließend m an das Argument layout in plot(), um zu zeichnen.
  • Die Wahl eines passenden Layouts kann verwirrend sein. Zum Glück hat igraph die Funktion layout_nicely(), die versucht, für ein gegebenes Graph-Objekt die geeignetste Layout-Funktion zu wählen. Verwende diese Funktion, um die Matrix m1 zu 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 = ___)
Code bearbeiten und ausführen