Vizualizace pomocí maticových grafů
Teď si vyzkoušíš svůj první „efektní" způsob vizualizace grafu: maticový plot. K tomu slouží funkce matrix() z balíčku nxviz. Stejně jako ostatní funkce nejvyšší úrovně v nxviz vrací objekt matplotlib axes, který zobrazíš pomocí plt.show().
nxviz je balíček pro přehlednou vizualizaci grafů. Pod pokličkou funkce matrix využívá nx.to_numpy_array(G), která vrátí graf ve formě matice. Každý uzel odpovídá jednomu sloupci a jednomu řádku; hrana mezi dvěma uzly je označena hodnotou 1. Při tomto převodu se však zachovají pouze metadata weight — ostatní metadata se ztratí, což si ověříš pomocí příkazu assert.
Opačný směr zajišťuje nx.from_numpy_array(A), který ti umožní rychle vytvořit graf z NumPy pole. Výchozí typ grafu je Graph(); pokud chceš použít DiGraph(), je třeba to upřesnit pomocí klíčového argumentu create_using, například: nx.from_numpy_array(A, create_using=nx.DiGraph).
Ještě jedna poznámka: matplotlib.pyplot a networkx jsou už naimportované jako plt a nx a graf T je předem načtený. Pro jednoduchost a rychlost jsme ze sítě vybrali jen 100 hran.
Toto cvičení je součástí kurzu
Úvod do analýzy sítí v Pythonu
Pokyny k cvičení
- Importuj
matrixznxviz. - Zobraz graf
Tjako maticový plot:- Vytvoř maticový plot s názvem
mpomocí funkcenv.matrix()s argumentemT. - Zobraz plot pomocí
plt.show().
- Vytvoř maticový plot s názvem
- Převeď graf do maticového formátu a pak ho zpátky do podoby NetworkX grafu jako orientovaný graf. Tento krok je už hotový.
- Zkontroluj, že metadata
categoryu každého uzlu chybí. I to je už připraveno — klikni na 'Submit Answer' a podívej se na výsledky!
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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()