CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Importez matrix depuis nxviz.
  • Tracez le graphe T sous forme de graphique matriciel. Pour ce faire :
    • Créez le graphique matriciel nommé m avec la fonction nv.matrix() en passant T comme argument.
    • Affichez le graphique avec plt.show().
  • 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 category est 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()
Modifier et exécuter le code