IniziaInizia gratis

Visualizzazione con grafici a matrice

È il momento di provare il tuo primo metodo di visualizzazione "avanzato": un grafico a matrice. Per farlo, nxviz mette a disposizione la funzione matrix(). Questa funzione, come tutte le funzioni di alto livello dell'API di nxviz, restituisce un oggetto axes di matplotlib che può essere mostrato con plt.show().

nxviz è un pacchetto per visualizzare i grafi in modo razionale. Dietro le quinte, la funzione matrix utilizza nx.to_numpy_matrix(G), che restituisce la forma matriciale del grafo. Qui, ogni nodo è una colonna e una riga, e un arco tra due nodi è indicato dal valore 1. Facendo così, però, viene preservato solo il metadato weight; tutti gli altri metadati vanno persi, come verificherai usando un'istruzione assert.

La funzione corrispondente nx.from_numpy_matrix(A) consente di creare rapidamente un grafo a partire da una matrice NumPy. Il tipo di grafo predefinito è Graph(); se vuoi creare un DiGraph(), devi specificarlo usando l'argomento keyword create_using, ad esempio (nx.from_numpy_matrix(A, create_using=nx.DiGraph)).

Un'ultima nota: matplotlib.pyplot e networkx sono già stati importati rispettivamente come plt e nx, e il grafo T è stato precaricato. Per semplicità e velocità, abbiamo effettuato un sotto-campionamento di sole 100 connessioni dalla rete.

Questo esercizio fa parte del corso

Introduzione all'analisi delle reti in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Importa matrix da nxviz.
  • Rappresenta il grafo T come grafico a matrice. Per farlo:
    • Crea il grafico a matrice chiamato m usando la funzione nv.matrix() passando T come argomento.
    • Mostra il grafico usando plt.show().
  • Converti il grafo in formato matrice, quindi riconverti il grafo in formato NetworkX a partire dalla matrice come grafo diretto. Questo è già stato fatto per te.
  • Verifica che il campo di metadati category venga perso da ciascun nodo. Anche questo è già stato fatto per te, quindi premi "Invia risposta" per vedere i risultati!

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Import nxviz
____

# Create the matrix plot: m
m = ____

# Display the plot
____

# Convert T to a matrix format: A
A = nx.to_numpy_matrix(T)

# Convert A back to the NetworkX form as a directed graph: T_conv
T_conv = nx.from_numpy_matrix(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()
Modifica ed esegui il codice