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
Ö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_lmcfrån grannarna tillGmed metoderna.add_nodes_from()och.neighbors(). - Använd metoden
.add_edges_from()för att lägga till kanter iG_lmcmellan 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 funktionenzip(), bestående av den aktuella noden och var och en av dess grannar. Det första argumentet tillzip()ska vara[node]*len(list(G.neighbors(node))), och det andra argumentet ska vara grannarna tillnode.
- Lägg till noder i
- Registrera varje nods centralitetspoäng i dess nodmetadata.
- Gör det genom att tilldela
nx.degree_centrality(G_lmc)[n]tillG_lmc.nodes[n]['degree centrality']i den andrafor-loopen.
- Gör det genom att tilldela
- 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()