MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Perluas 1 derajat keterhubungan dari clique, dan tambahkan pengguna tersebut ke subgraf. Di dalam for loop pertama:
    • Tambahkan node ke G_lmc dari tetangga G menggunakan metode .add_nodes_from() dan .neighbors().
    • Dengan metode .add_edges_from(), tambahkan edge ke G_lmc antara node saat ini dan semua tetangganya. Untuk melakukan ini, Anda harus membuat daftar tuple menggunakan fungsi zip() yang terdiri atas node saat ini dan masing-masing tetangganya. Argumen pertama untuk zip() harus [node]*len(list(G.neighbors(node))), dan argumen kedua harus tetangga dari node.
  • Catat skor degree centrality setiap node dalam metadata nodenya.
    • Lakukan ini dengan menetapkan nx.degree_centrality(G_lmc)[n] ke G_lmc.nodes[n]['degree centrality'] dalam for loop kedua.
  • 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()
Edit dan Jalankan Kode