ПочатиПочніть безкоштовно

Характеристика спільнот редагування

Тепер ви поєднаєте знання про алгоритм BFS і поняття максимальних кліків, щоб візуалізувати мережу за допомогою Arc plot.

Найбільша максимальна кліка в мережі співпраці користувачів Github призначена підграфу G_lmc. Зауважте, що для NetworkX версії 2.x і пізніших G.subgraph(nodelist) повертає лише незмінюваний вигляд вихідного графа. Щоб отримати змінювану версію, потрібно явно викликати .copy() цього графа.

Ця вправа є частиною курсу

Вступ до аналізу мереж у Python

Переглянути курс

Інструкції до вправи

  • Розширтеся на 1 ступінь відстані від кліки та додайте цих користувачів до підграфа. Усередині першого циклу for:
    • Додайте вузли до G_lmc із сусідів G, використавши методи .add_nodes_from() і .neighbors().
    • Використавши метод .add_edges_from(), додайте до G_lmc ребра між поточним вузлом і всіма його сусідами. Для цього створіть список кортежів за допомогою функції zip(), що складається з поточного вузла та кожного його сусіда. Першим аргументом zip() має бути [node]*len(list(G.neighbors(node))), а другим — сусіди node.
  • Запишіть для кожного вузла його показник ступеневої центральності в метадані вузла.
    • Зробіть це, присвоївши nx.degree_centrality(G_lmc)[n] до G_lmc.nodes[n]['degree centrality'] у другому циклі for.
  • Візуалізуйте цю мережу за допомогою Arc plot, відсортувавши вузли за ступеневою центральністю (це можна зробити за допомогою ключового аргументу sort_by='degree centrality').

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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()
Редагувати та запускати код