Network Analysis with Python


N, K = cam_net.order(), cam_net.size()



Yüklə 1,5 Mb.
Pdf görüntüsü
səhifə7/12
tarix22.03.2023
ölçüsü1,5 Mb.
#89129
1   2   3   4   5   6   7   8   9   ...   12
l109-tutorial 2015

N, K = cam_net.order(), cam_net.size()
avg_deg = float(K) / N
print "Nodes: ", N
print "Edges: ", K
print "Average degree: ", avg_deg
print "SCC: ", nx.number_strongly_connected_components(cam_net)
print "WCC: ", nx.number_weakly_connected_components(cam_net)
28


Basic analysis: degree distribution
• Calculate in (and out) degrees of a directed graph
• Then use matplotlib (pylab) to plot the degree distribution
in_degrees = cam_net.in_degree() # dictionary node:degree
in_values = sorted(set(in_degrees.values()))
in_hist = [in_degrees.values().count(x) for x in in_values]
plt.figure() # you need to first do 'import pylab as plt'
plt.grid(True)
plt.plot(in_values, in_hist, 'ro-') # in-degree
plt.plot(out_values, out_hist, 'bv-') # out-degree
plt.legend(['In-degree', 'Out-degree'])
plt.xlabel('Degree')
plt.ylabel('Number of nodes')
plt.title('network of places in Cambridge')
plt.xlim([0, 2*10**2])
plt.savefig('./output/cam_net_degree_distribution.pdf')
plt.close()
29


Basic analysis: degree distribution
Oops! What happened?
30


Basic analysis: degree distribution
Change scale of the x and y axes by replacing
plt.plot(in_values,in_hist,'ro-')
with
plt.loglog(in_values,in_hist,'ro-')
Fitting data with SciPy:
http://wiki.scipy.org/Cookbook/FittingData
31


Basic analysis: clustering coefficient
• We can get the clustering coefficient of individual nodes or all the nodes (but first 
we need to convert the graph to an undirected one)

Yüklə 1,5 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   ...   12




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin