K vyřešení následující úlohy budeme potřebovat nakreslit histogram.
To můžeme udělat poměrně jednoduše pomocí knihovny matplotlib
.
import matplotlib.pyplot as plt
x = range(-10,11)
y = [i**2 for i in x]
plt.bar(x, y)
plt.title("Parabola")
plt.ylabel("y")
plt.xlabel("x")
Text(0.5, 0, 'x')
V grafu si můžeme nastavit i další parametry, viz https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.bar.html?highlight=bar#matplotlib.axes.Axes.bar.
Úloha 1: Napiš funkci, která pro zadaný graf vykreslí histogram distribuce jeho stupňů.
NetworkX má zabudováno mnoho funkcí na počítání parametrů sítí.
Na výpočet klusterovacího koeficientu je implementována fukce clustering(G)
, která vrátí slovník vrcholů a jejich klusterovacího koeficientu, podrobnosti viz https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.cluster.clustering.html#networkx.algorithms.cluster.clustering.
Existuje dokonce i funkce average_clustering(G)
, která spočítá průměrný clusterovací koeficient v grafu:
https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.cluster.average_clustering.html#networkx.algorithms.cluster.average_clustering
Stejně tak je v NetworkX implementována funkce average_shortest_path_length(G)
, která pro zadaný graf spočítá průměrnou délku nejkratších cest. Více viz dokumentace:
https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.shortest_paths.generic.average_shortest_path_length.html?#networkx.algorithms.shortest_paths.generic.average_shortest_path_length
Úloha 4: Následující reálné sítě převeď do vhodného formátu
a proveď nad nimi následující analýzy
U nesouvislých grafů analyzujte jejich největší komponentu souvislosti.
Úloha 5: Porovnej výsledky s diskuzí z druhého cvičení.