Düzenleme topluluklarını karakterize etme
Şimdi BFS algoritması ve maksimal klik kavramı hakkında öğrendiklerini birleştirerek ağı bir Arc plot ile görselleştireceksin.
Github kullanıcı iş birliği ağındaki en büyük maksimal klik, G_lmc alt grafına atanmıştır. NetworkX sürüm 2.x ve sonrasında, G.subgraph(nodelist)'in özgün graf üzerinde yalnızca değiştirilemez bir görünüm döndürdüğünü unutma. Değiştirilebilir bir sürüm elde etmek için grafın açıkça .copy() ile kopyalanması gerekir.
Bu egzersiz, kursun bir parçasıdır
Python ile Ağ Analizine Giriş
Egzersiz talimatları
- Klikten 1 derece uzaklığa kadar git ve bu kullanıcıları alt grafa ekle. İlk
fordöngüsü içinde:.add_nodes_from()ve.neighbors()yöntemlerini kullanarakG'nin komşularından düğümleriG_lmc'ye ekle..add_edges_from()yöntemini kullanarak, geçerli düğüm ile tüm komşuları arasındaG_lmc'ye kenarlar ekle. Bunu yapmak için, geçerli düğüm ve her bir komşusundan oluşan bir demet (tuple) listesi oluşturmak üzerezip()fonksiyonunu kullanacaksın.zip()'in ilk argümanı[node]*len(list(G.neighbors(node))), ikinci argümanı isenode'un komşuları olmalı.
- Her düğümün derece merkeziliği puanını düğüm metaverisine kaydet.
- Bunu, ikinci
fordöngüsündenx.degree_centrality(G_lmc)[n]ifadesiniG_lmc.nodes[n]['degree centrality']'ye atayarak yap.
- Bunu, ikinci
- Bu ağı, düğümleri derece merkeziliğine göre sıralayan bir Arc plot ile görselleştir (bunu
sort_by='degree centrality'anahtar argümanını kullanarak yapabilirsin).
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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()