def main(): citation_graph = load_graph(CITATION_URL) print compute_in_degrees(citation_graph) start_time = timeit.default_timer() dist = in_degree_distribution(citation_graph) print 'dist =', dist total = sum(dist.itervalues()) normalized = {key: float(value)/total for key, value in dist.items()} print(timeit.default_timer() - start_time) x = normalized.keys() y = normalized.values() print len(y) plt.loglog(x, y, 'ro') plt.yscale('log') plt.xscale('log') plt.minorticks_off() plt.xlabel('In-degree distribution') plt.ylabel('Normalized In-degree distribution') plt.title('Graph of Citations') plt.grid(True) plt.savefig('citations-q1.png') plt.show()
graph = {0: set([])} if num_nodes > 0: for node in range(num_nodes): edges = [] for head in range(num_nodes): if node != head: a = random.random() if a < probability: edges.append(head) graph[node] = set(edges) return graph graph = er_graph(2777, 0.05) print graph degrees = compute_in_degrees(graph) print degrees dist = in_degree_distribution(graph) print dist total = sum(dist.itervalues()) normalized = {key: float(value)/total for key, value in dist.items()} #print(timeit.default_timer() - start_time) print sum(normalized.itervalues()) #print dist print normalized x = normalized.keys() y = normalized.values()