Visualiser avec des graphiques matriciels
Il est temps d'essayer votre première méthode de visualisation de graphe « avancée » : le graphique matriciel. Pour ce faire, nxviz offre une fonction matrix(). Cette fonction, comme toutes les fonctions de l'API de haut niveau de nxviz, retourne un objet axes de matplotlib qui peut être affiché avec plt.show().
nxviz est un paquet pour visualiser des graphes de façon rationnelle. En coulisse, la fonction matrix utilise nx.to_numpy_array(G), qui renvoie la forme matricielle du graphe. Ici, chaque nœud correspond à une colonne et à une rangée, et une arête entre deux nœuds est indiquée par la valeur 1. Ce faisant, toutefois, seul le métadonné weight est conservé; toutes les autres métadonnées sont perdues, comme vous le vérifierez avec une instruction assert.
La fonction correspondante nx.from_numpy_array(A) permet de créer rapidement un graphe à partir d'un tableau NumPy. Le type de graphe par défaut est Graph(); si vous souhaitez en faire un DiGraph(), il faut le préciser avec l'argument nommé create_using, p. ex. (nx.from_numpy_array(A, create_using=nx.DiGraph)).
Dernière note : matplotlib.pyplot et networkx ont déjà été importés sous les noms plt et nx, respectivement, et le graphe T a été préchargé. Pour simplifier et accélérer l'exécution, nous avons sous-échantillonné seulement 100 arêtes du réseau.
Cette activité fait partie du cours
Introduction à l'analyse des réseaux en Python
Instructions de l’exercice
- Importez
matrixdepuisnxviz. - Tracez le graphe
Tsous forme de graphique matriciel. Pour ce faire :- Créez le graphique matriciel nommé
mavec la fonctionnv.matrix()en passantTcomme argument. - Affichez le graphique avec
plt.show().
- Créez le graphique matriciel nommé
- Convertissez le graphe en format matriciel, puis reconvertissez-le en format NetworkX à partir de la matrice comme graphe orienté. Cela a été fait pour vous.
- Vérifiez que le champ de métadonnées
categoryest perdu pour chaque nœud. Cela a aussi été fait pour vous, alors cliquez sur "Soumettre la réponse" pour voir les résultats !
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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()