Začněte nyníZačněte zdarma

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

Zobrazit kurz

Pokyny k cvičení

  • Importuj matrix z nxviz.
  • Zobraz graf T jako maticový plot:
    • Vytvoř maticový plot s názvem m pomocí funkce nv.matrix() s argumentem T.
    • Zobraz plot pomocí plt.show().
  • 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 category u 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()
Upravit a spustit kód