Распределение центральности по степени для узлов пользователей
В этом упражнении и следующем вы выполните итоговое повторение материала из предыдущего курса. Ваша задача — построить распределения центральности по степени для каждого раздела узлов в двудольной версии сети сотрудничества GitHub. Здесь вы сделаете это для раздела 'users', а в следующем упражнении — для раздела 'projects'.
Функция get_nodes_from_partition(), которую вы написали ранее, уже загружена для вас. Напомним: «центральность по степени» — это мера важности узла, а «распределение центральности по степени» — это список значений центральности для всех узлов графа. Несколько упражнений назад, при построении circos-графика, мы вычисляли центральности за вас. Теперь вы попрактикуетесь делать это самостоятельно!
Это упражнение является частью курса
Средний уровень сетевого анализа на Python
Инструкции к упражнению
- Импортируйте
matplotlib.pyplotкакplt. - С помощью функции
get_nodes_from_partition()из предыдущего упражнения получите списокuser_nodes, соответствующий узлам'users'графаG. - С помощью функции
nx.degree_centrality()вычислите центральности по степени для каждого узла вG. Сохраните результат в переменнуюdcs. - Используйте списковое включение, чтобы вычислить центральности по степени для каждого узла из
user_nodes. Сохраните результат в переменнуюuser_dcs.- Помните, что
dcs— это словарь, в котором ключами являются узлы. Нужные узлы содержатся вuser_nodes. Используйте эту информацию, чтобы получить центральности узлов пользователей. В качестве переменной итератора используйтеn.
- Помните, что
- Постройте гистограмму распределения центральностей пользователей с помощью
plt.hist()иuser_dcs.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Import matplotlib
____
# Get the 'users' nodes: user_nodes
user_nodes = ____
# Compute the degree centralities: dcs
dcs = ____
# Get the degree centralities for user_nodes: user_dcs
user_dcs = [dcs[____] for n in ____]
# Plot the degree distribution of users_dcs
plt.yscale('log')
plt.hist(____, bins=20)
plt.show()