Kom igångKom igång gratis

Karaktärisering av redigeringsgemenskaper

Nu ska du kombinera det du lärt dig om BFS-algoritmen och begreppet maximala klickar för att visualisera nätverket med ett Arc plot.

Den största maximala klickan i GitHub-användarnas samarbetsnätverk har tilldelats delgrafen G_lmc. Observera att för NetworkX version 2.x och senare returnerar G.subgraph(nodelist) bara en oföränderlig vy av den ursprungliga grafen. Du måste uttryckligen begära en .copy() av grafen för att få en muterbar version.

Den här övningen är en del av kursen

Introduktion till nätverksanalys i Python

Visa kurs

Övningsinstruktioner

  • Gå ut ett separationssteg från klickan och lägg till dessa användare i delgrafen. Inuti den första for-loopen:
    • Lägg till noder i G_lmc från grannarna till G med metoderna .add_nodes_from() och .neighbors().
    • Använd metoden .add_edges_from() för att lägga till kanter i G_lmc mellan den aktuella noden och alla dess grannar. För att göra det behöver du skapa en lista med tupler med hjälp av funktionen zip(), bestående av den aktuella noden och var och en av dess grannar. Det första argumentet till zip() ska vara [node]*len(list(G.neighbors(node))), och det andra argumentet ska vara grannarna till node.
  • Registrera varje nods centralitetspoäng i dess nodmetadata.
    • Gör det genom att tilldela nx.degree_centrality(G_lmc)[n] till G_lmc.nodes[n]['degree centrality'] i den andra for-loopen.
  • Visualisera nätverket med ett Arc plot där noderna sorteras efter graden av centralitet (du kan göra detta med nyckelargumentet sort_by='degree centrality').

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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()
Redigera och kör kod