Zacznij terazZacznij za darmo

Charakterystyka społeczności edytorów

Teraz połączysz wiedzę o algorytmie BFS i pojęciu maksymalnych klik, aby zwizualizować sieć za pomocą wykresu Arc.

Największa maksymalna klika w sieci współpracy użytkowników GitHub została przypisana do podgrafu G_lmc. Pamiętaj, że w wersji NetworkX 2.x i późniejszych G.subgraph(nodelist) zwraca jedynie niemodyfikowalny widok oryginalnego grafu. Aby uzyskać modyfikowalną wersję, musisz jawnie wywołać .copy() na grafie.

To ćwiczenie jest częścią kursu

Wprowadzenie do analizy sieci w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Wyjdź o 1 stopień separacji od kliki i dodaj tych użytkowników do podgrafu. Wewnątrz pierwszej pętli for:
    • Dodaj węzły do G_lmc z sąsiadów grafu G, korzystając z metod .add_nodes_from() i .neighbors().
    • Za pomocą metody .add_edges_from() dodaj krawędzie do G_lmc między bieżącym węzłem a wszystkimi jego sąsiadami. W tym celu utwórz listę krotek przy użyciu funkcji zip(), składającą się z bieżącego węzła i każdego z jego sąsiadów. Pierwszym argumentem zip() powinien być [node]*len(list(G.neighbors(node))), a drugim – sąsiedzi węzła node.
  • Zapisz wynik centralności stopnia każdego węzła w jego metadanych.
    • Zrób to, przypisując nx.degree_centrality(G_lmc)[n] do G_lmc.nodes[n]['degree centrality'] w drugiej pętli for.
  • Zwizualizuj tę sieć za pomocą wykresu Arc, sortując węzły według centralności stopnia (użyj do tego argumentu kluczowego sort_by='degree centrality').

Interaktywne ćwiczenie praktyczne

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

# Import necessary modules
from nxviz import arc
import matplotlib.pyplot as plt

# Identify the largest maximal clique: largest_max_clique
largest_max_clique = set(sorted(nx.find_cliques(G), key=lambda x: len(x))[-1])

# Create a subgraph from the largest_max_clique: G_lmc
G_lmc = G.subgraph(largest_max_clique).copy()

# Go out 1 degree of separation
for node in list(G_lmc.nodes()):
    G_lmc.add_nodes_from(____)
    G_lmc.add_edges_from(zip(____, ____))

# Record each node's degree centrality score
for n in G_lmc.nodes():
    ____ = ____

# Create the Arc plot: a
a = ____

# Draw the Arc plot to the screen
a
plt.show()
Edytuj i uruchom kod