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
Anleitung zur Übung
- Importiere
matrixausnxviz. - Plotte den Graphen
Tals Matrix-Plot. Gehe dazu so vor:- Erzeuge den Matrix-Plot
mmit der Funktionnv.matrix()und übergibTals Argument. - Zeige den Plot mit
plt.show()an.
- Erzeuge den Matrix-Plot
- 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
categorybei 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()