LoslegenKostenlos loslegen

Visualisieren mit Matrix-Plots

Es ist Zeit für deine erste „schicke“ Methode zur Graphvisualisierung: ein Matrix-Plot. Dafür stellt nxviz die Funktion matrix() bereit. Diese Funktion gibt – wie alle High-Level-API-Funktionen von nxviz – ein Matplotlib-Axes-Objekt zurück, das mit plt.show() angezeigt werden kann.

nxviz ist ein Paket, um Graphen rational zu visualisieren. Unter der Haube nutzt die Funktion matrix nx.to_numpy_matrix(G), das die Matrixform des Graphen zurückgibt. Hier ist jeder Knoten eine Spalte und eine Zeile, und eine Kante zwischen zwei Knoten wird durch den Wert 1 angezeigt. Dabei bleibt allerdings nur das Metadatum weight erhalten; alle anderen Metadaten gehen verloren – das überprüfst du mit einer assert-Anweisung.

Ein entsprechendes nx.from_numpy_matrix(A) erlaubt es, schnell einen Graphen aus einer NumPy-Matrix zu erzeugen. Der Standard-Graphtyp ist Graph(); wenn du einen DiGraph() möchtest, musst du das mit dem Schlüsselwortargument create_using angeben, z. B. (nx.from_numpy_matrix(A, create_using=nx.DiGraph)).

Noch ein Hinweis: matplotlib.pyplot und networkx wurden bereits als plt bzw. nx importiert, und der Graph T wurde vorgeladen. Der Einfachheit und Geschwindigkeit halber haben wir nur 100 Kanten aus dem Netzwerk stichprobenartig ausgewählt.

Diese Übung ist Teil des Kurses

Einstieg in die Netzwerkanalyse mit Python

Kurs anzeigen

Anleitung zur Übung

  • Importiere matrix aus nxviz.
  • Zeichne den Graphen T als Matrix-Plot. Gehe dazu so vor:
    • Erstelle den Matrix-Plot m mit der Funktion nv.matrix() und übergib T als Argument.
    • Zeige den Plot mit plt.show() an.
  • Wandle den Graphen in ein Matrixformat um und konvertiere ihn anschließend wieder aus der Matrix in die NetworkX-Form als gerichteten Graphen. Das wurde bereits für dich erledigt.
  • Prüfe, dass das Metadatenfeld category bei jedem Knoten verloren geht. Auch das ist bereits für dich erledigt – klicke also auf 'Antwort senden', um die Ergebnisse zu sehen!

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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()
Code bearbeiten und ausführen