1. Nauka
  2. /
  3. Kursy
  4. /
  5. Wprowadzenie do analizy sieci w Pythonie

Connected

ćwiczenie

Wizualizacja za pomocą wykresów macierzowych

Czas wypróbować pierwszą „efektowną" metodę wizualizacji grafów: wykres macierzowy. Biblioteka nxviz udostępnia w tym celu funkcję matrix(). Podobnie jak wszystkie funkcje najwyższego poziomu w nxviz, zwraca ona obiekt osi matplotlib, który można wyświetlić za pomocą plt.show().

nxviz to biblioteka do racjonalnej wizualizacji grafów. Wewnętrznie funkcja matrix korzysta z nx.to_numpy_array(G), która zwraca macierzową reprezentację grafu. Każdy węzeł odpowiada jednej kolumnie i jednemu wierszowi, a krawędź między dwoma węzłami jest oznaczona wartością 1. W tej reprezentacji zachowywane są jednak wyłącznie metadane weight – wszystkie pozostałe metadane są tracone, co zweryfikujesz za pomocą instrukcji assert.

Odpowiadająca jej funkcja nx.from_numpy_array(A) pozwala szybko utworzyć graf z tablicy NumPy. Domyślnym typem grafu jest Graph(); jeśli chcesz uzyskać DiGraph(), należy to określić za pomocą argumentu kluczowego create_using, np. (nx.from_numpy_array(A, create_using=nx.DiGraph)).

Na koniec: matplotlib.pyplot i networkx zostały już zaimportowane odpowiednio jako plt i nx, a graf T jest wstępnie wczytany. Dla uproszczenia i przyspieszenia obliczeń użyto tylko 100 krawędzi z sieci.

Instrukcje

100 XP
  • Zaimportuj matrix z nxviz.
  • Wyświetl graf T jako wykres macierzowy. W tym celu:
    • Utwórz wykres macierzowy o nazwie m, wywołując funkcję nv.matrix() z argumentem T.
    • Wyświetl wykres, używając plt.show().
  • Przekształć graf do formatu macierzowego, a następnie z powrotem do postaci NetworkX jako graf skierowany. Ten krok został już za ciebie wykonany.
  • Sprawdź, czy pole metadanych category zostało utracone dla każdego węzła. To również zostało już wykonane – kliknij „Prześlij odpowiedź", aby zobaczyć wyniki!