Kom igångKom igång gratis

Visualisering med matrisdiagram

Nu är det dags att prova din första "avancerade" grafvisualiseringsmetod: ett matrisdiagram. För detta ändamål tillhandahåller nxviz en funktion som heter matrix(). Den här funktionen, liksom alla nxviz-bibliotekets toppnivå-API-funktioner, returnerar ett matplotlib-axelobjekt som kan visas med plt.show().

nxviz är ett bibliotek för att visualisera grafer på ett strukturerat och logiskt sätt. Under huven använder matrix-funktionen nx.to_numpy_array(G), som returnerar grafens matrisform. Här representeras varje nod av en kolumn och en rad, och en kant mellan två noder anges med värdet 1. Det innebär dock att enbart weight-metadata bevaras – all övrig metadata går förlorad, vilket du kommer att kontrollera med en assert-sats.

Med den motsvarande funktionen nx.from_numpy_array(A) kan du snabbt skapa en graf från en NumPy-array. Standardgraftypen är Graph(); om du vill skapa en DiGraph() måste det anges med nyckelordsargumentet create_using, till exempel (nx.from_numpy_array(A, create_using=nx.DiGraph)).

Slutligen: matplotlib.pyplot och networkx har redan importerats som plt respektive nx, och grafen T är förinläst. För enkelhetens skull har vi samplet ned till enbart 100 kanter från nätverket.

Den här övningen är en del av kursen

Introduktion till nätverksanalys i Python

Visa kurs

Övningsinstruktioner

  • Importera matrix från nxviz.
  • Plotta grafen T som ett matrisdiagram. Gör så här:
    • Skapa matrisdiagrammet med namnet m med hjälp av funktionen nv.matrix() och skicka in T som argument.
    • Visa diagrammet med plt.show().
  • Konvertera grafen till matrisformat och konvertera den sedan tillbaka till NetworkX-form som en riktad graf. Det här steget är redan gjort åt dig.
  • Kontrollera att metadatafältet category har gått förlorat från varje nod. Det här är också redan gjort åt dig – klicka på 'Skicka in svar' för att se resultatet!

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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()
Redigera och kör kod