Zacznij terazZacznij za darmo

Układy sieci w igraph

Pakiet igraph oferuje kilka wbudowanych algorytmów układu do wizualizacji sieci. W zależności od rozmiaru sieci różne układy mogą lepiej lub gorzej oddawać jej strukturę. Najlepszy układ to taki, który minimalizuje liczbę przecinających się krawędzi. W tym ćwiczeniu poznasz kilka z wielu dostępnych domyślnych algorytmów układu. Ponowne uruchomienie kodu dla każdego wykresu da nieco inny wariant tego samego typu układu – warto to zrobić kilka razy, aby znaleźć najlepiej wyglądającą wizualizację swojej sieci.

To ćwiczenie jest częścią kursu

Analiza sieci w R

Zobacz kurs

Instrukcje do ćwiczenia

  • W funkcji plot zmień argument layout na layout_in_circle(), aby uzyskać sieć w układzie okrągłym.
  • W funkcji plot zmień argument layout na layout_with_fr(), aby uzyskać sieć w układzie Fruchtermana-Reingolda.
  • Możesz też określić układ, podając macierz współrzędnych (x, y) dla każdego wierzchołka. Użyj funkcji layout_as_tree(), aby wygenerować macierz m ze współrzędnymi, a następnie przekaż m do parametru layout w funkcji plot().
  • Wybór odpowiedniego układu bywa trudny. Na szczęście igraph udostępnia funkcję layout_nicely(), która sama stara się dobrać najlepszy układ dla danego obiektu grafu. Użyj tej funkcji, aby utworzyć macierz m1, a następnie zwizualizuj sieć na podstawie tych współrzędnych.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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 = ___)
Edytuj i uruchom kod