Visualización con gráficos de matriz
Es hora de probar tu primer método de visualización de grafos "elegante": un gráfico de matriz. Para ello, nxviz ofrece una función matrix(). Esta función, como todas las funciones de la API de alto nivel de nxviz, devuelve un objeto de ejes de matplotlib que se puede mostrar con plt.show().
nxviz es un paquete para visualizar grafos de forma racional. Internamente, la función matrix utiliza nx.to_numpy_array(G), que devuelve la forma matricial del grafo. Aquí, cada nodo es una columna y una fila, y una arista entre dos nodos se indica con el valor 1. Al hacerlo, sin embargo, solo se conserva la metainformación weight; el resto de metadatos se pierde, como vas a comprobar con una sentencia assert.
La función correspondiente nx.from_numpy_array(A) permite crear rápidamente un grafo a partir de un array de NumPy. El tipo de grafo predeterminado es Graph(); si quieres que sea un DiGraph(), debes especificarlo con el argumento de palabra clave create_using, p. ej. (nx.from_numpy_array(A, create_using=nx.DiGraph)).
Una última nota: matplotlib.pyplot y networkx ya se han importado como plt y nx, respectivamente, y el grafo T ya está precargado. Para simplificar y acelerar, hemos submuestreado solo 100 aristas de la red.
Este ejercicio forma parte del curso
Introducción al análisis de redes en Python
Instrucciones del ejercicio
- Importa
matrixdenxviz. - Representa el grafo
Tcomo un gráfico de matriz. Para hacerlo:- Crea la visualización de matriz llamada
musando la funciónnv.matrix()pasandoTcomo argumento. - Muestra la visualización usando
plt.show().
- Crea la visualización de matriz llamada
- Convierte el grafo a formato de matriz y luego reconvierte el grafo desde la matriz a formato NetworkX como grafo dirigido. Esto ya está hecho por ti.
- Comprueba que el campo de metadatos
categoryse pierde en cada nodo. Esto también ya está hecho por ti, así que pulsa "Enviar respuesta" para ver los resultados.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Import nxviz
____
# Create the matrix plot: m
m = ____
# Display the plot
____
# Convert T to a matrix format: A
A = nx.to_numpy_array(T)
# Convert A back to the NetworkX form as a directed graph: T_conv
T_conv = nx.from_numpy_array(A, create_using=nx.DiGraph())
# Check that the `category` metadata field is lost from each node
for n, d in T_conv.nodes(data=True):
assert 'category' not in d.keys()