Distribución de centralidad de grado de los nodos de usuario
En este ejercicio y en el siguiente, vas a hacer un repaso final del material del curso anterior. Tu tarea es representar las distribuciones de centralidad de grado para cada partición de nodos en la versión bipartita de la red de colaboración de GitHub. Aquí lo harás para la partición 'users'. En el siguiente ejercicio, lo harás para la partición 'projects'.
La función que escribiste antes, get_nodes_from_partition(), ya está cargada. Por si necesitas recordarlo, la «centralidad de grado» es una medida de la importancia de un nodo, y la «distribución de centralidad de grado» es la lista de puntuaciones de centralidad de grado de todos los nodos del grafo. Hace unos ejercicios, cuando creaste el circos plot, calculamos las centralidades de grado por ti. ¡Ahora vas a practicar cómo hacerlo tú mismo!
Este ejercicio forma parte del curso
Análisis de redes intermedio en Python
Instrucciones del ejercicio
- Importa
matplotlib.pyplotcomoplt. - Usa tu función
get_nodes_from_partition()del ejercicio anterior para obtener una lista llamadauser_nodescorrespondiente a los nodos'users'deG. - Usando la función
nx.degree_centrality(), calcula las centralidades de grado para cada nodo enG. Guarda el resultado comodcs. - Usa una list comprehension para calcular las centralidades de grado de cada nodo en
user_nodes. Guarda el resultado comouser_dcs.- Recuerda que
dcses un diccionario, en el que las claves son los nodos. Los nodos relevantes aquí están contenidos enuser_nodes. ¿Cómo puedes usar esta información para obtener las centralidades de grado de los nodos de usuario? Usancomo tu variable iteradora.
- Recuerda que
- Grafica un histograma de la distribución de grado de los usuarios usando
plt.hist()yuser_dcs.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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()