Mencirikan komunitas penyuntingan
Sekarang Anda akan menggabungkan apa yang telah Anda pelajari tentang algoritma BFS dan konsep maximal clique untuk memvisualisasikan jaringan dengan Arc plot.
Maximal clique terbesar dalam jaringan kolaborasi pengguna Github telah ditetapkan ke subgraf G_lmc. Perhatikan bahwa untuk NetworkX versi 2.x dan yang lebih baru, G.subgraph(nodelist) hanya mengembalikan tampilan tidak dapat diubah dari graf asli. Kita harus secara eksplisit meminta .copy() dari graf untuk memperoleh versi yang dapat diubah.
Latihan ini adalah bagian dari kursus
Pengantar Analisis Jaringan di Python
Petunjuk latihan
- Perluas 1 derajat keterhubungan dari clique, dan tambahkan pengguna tersebut ke subgraf. Di dalam
forloop pertama:- Tambahkan node ke
G_lmcdari tetanggaGmenggunakan metode.add_nodes_from()dan.neighbors(). - Dengan metode
.add_edges_from(), tambahkan edge keG_lmcantara node saat ini dan semua tetangganya. Untuk melakukan ini, Anda harus membuat daftar tuple menggunakan fungsizip()yang terdiri atas node saat ini dan masing-masing tetangganya. Argumen pertama untukzip()harus[node]*len(list(G.neighbors(node))), dan argumen kedua harus tetangga darinode.
- Tambahkan node ke
- Catat skor degree centrality setiap node dalam metadata nodenya.
- Lakukan ini dengan menetapkan
nx.degree_centrality(G_lmc)[n]keG_lmc.nodes[n]['degree centrality']dalamforloop kedua.
- Lakukan ini dengan menetapkan
- Visualisasikan jaringan ini dengan Arc plot dengan mengurutkan node berdasarkan degree centrality (Anda dapat melakukannya menggunakan argumen kata kunci
sort_by='degree centrality').
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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()