Rysowanie rozkładu centralności stopnia na projekcji
W tym ćwiczeniu porównasz rozkłady centralności stopnia dla trzech grafów: oryginalnego grafu G, projekcji grafu osób peopleG oraz projekcji grafu klubów clubsG. Pozwoli ci to lepiej zrozumieć różnicę między obliczaniem centralności stopnia w wersji dwudzielnej i jednodzielnej. Listy węzłów people i clubs zostały już wczytane.
Pamiętaj, że funkcje dwudzielne wymagają podania kontenera węzłów, ale i tak zwracają wartości centralności dla wszystkich węzłów. Miej też na uwadze, że wyniki centralności stopnia są przechowywane jako słowniki (mapujące węzeł na wartość).
To ćwiczenie jest częścią kursu
Analiza sieci w Pythonie – poziom średniozaawansowany
Instrukcje do ćwiczenia
- Wyrysuj rozkład centralności stopnia dla oryginalnego grafu
G, używając funkcjidegree_centralityz modułu bipartite:nx.bipartite.degree_centrality(). Przyjmuje ona dwa argumenty: grafGoraz jedną z list węzłów (peoplelubclubs). - Wyrysuj rozkład centralności stopnia dla grafu
peopleG, używając zwykłej (nie-dwudzielnej) funkcjidegree_centralityz NetworkX:nx.degree_centrality(). - Wyrysuj rozkład centralności stopnia dla grafu
clubsG, używając zwykłej (nie-dwudzielnej) funkcjidegree_centralityz NetworkX:nx.degree_centrality().
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
import matplotlib.pyplot as plt
# Plot the degree centrality distribution of both node partitions from the original graph
plt.figure()
original_dc = ____
# Remember that you can directly plot dictionary values.
plt.hist(____, alpha=0.5)
plt.yscale('log')
plt.title('Bipartite degree centrality')
plt.show()
# Plot the degree centrality distribution of the peopleG graph
plt.figure()
people_dc = ____
plt.hist(____)
plt.yscale('log')
plt.title('Degree centrality of people partition')
plt.show()
# Plot the degree centrality distribution of the clubsG graph
plt.figure()
clubs_dc = ____
plt.hist(____)
plt.yscale('log')
plt.title('Degree centrality of clubs partition')
plt.show()