LoslegenKostenlos loslegen

Visualisieren mit Matrix-Plots

Jetzt ist es Zeit für deine erste „schicke“ Visualisierung: ein Matrix-Plot. Dafür stellt nxviz die Funktion matrix() bereit. Diese Funktion gibt – wie alle Top-Level-API-Funktionen von nxviz – ein Matplotlib-Achsenobjekt zurück, das du mit plt.show() anzeigen kannst.

nxviz ist ein Paket, mit dem sich Graphen auf rationale Weise visualisieren lassen. Unter der Haube nutzt die Funktion matrix nx.to_numpy_array(G), was die Matrixdarstellung des Graphen zurückgibt. Dabei steht jeder Knoten für eine Spalte und eine Zeile; eine Kante zwischen zwei Knoten wird durch den Wert 1 angezeigt. Auf diese Weise bleibt jedoch nur die weight-Metadateninformation erhalten; alle anderen Metadaten gehen verloren – das prüfst du mit einem assert-Statement.

Mit dem entsprechenden nx.from_numpy_array(A) lässt sich aus einem NumPy-Array schnell ein Graph erzeugen. Der Standard-Graphtyp ist Graph(); wenn du daraus einen DiGraph() machen willst, musst du das mit dem Keyword-Argument create_using angeben, z. B. (nx.from_numpy_array(A, create_using=nx.DiGraph)).

Noch ein Hinweis: matplotlib.pyplot und networkx wurden bereits als plt bzw. nx importiert, und der Graph T ist bereits geladen. 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.
  • Plotte den Graphen T als Matrix-Plot. Gehe dazu so vor:
    • Erzeuge den Matrix-Plot m mit der Funktion nv.matrix() und übergib T als Argument.
    • Zeige den Plot mit plt.show() an.
  • Konvertiere den Graphen in ein Matrixformat und anschließend wieder zurück von 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 wurde bereits für dich erledigt, also klicke 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_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()
Code bearbeiten und ausführen