mobicen / util / MyUtil.py @ b6158841
History  View  Annotate  Download (1.46 KB)
1 
from prettytable import PrettyTable 

2 
import numpy as np 
3 
import networkx as nx 
4 
import random as rnd 
5 
import matplotlib.pyplot as plt 
6 
plt.ion() 
7 
import matplotlib.colors as mcolors 
8 
import sys 
9 
import code # code.interact(local=dict(globals(), **locals())) 
10  
11 
def draw(G, pos, xmax, ymax, measures=None): 
12 
lay = {k:pos[k] for k in range(0,len(pos))} 
13 
if not measures: 
14 
measures = nx.betweenness_centrality(G, normalized = False, weight = 'weight', endpoints=True) 
15 
measure_name = "Betweenness"

16 
nodes = nx.draw_networkx_nodes(G, lay, node_size=100, cmap=plt.cm.gnuplot2,

17 
node_color=measures.values(), 
18 
nodelist=measures.keys()) 
19 
nodes.set_norm(mcolors.SymLogNorm(linthresh=0.01, linscale=1)) 
20  
21 
edges = nx.draw_networkx_edges(G, lay) 
22 
plt.title(measure_name) 
23 
plt.colorbar(nodes) 
24  
25 
plt.xlim(0, xmax)

26 
plt.ylim(0, ymax)

27 

28 
plt.draw() 
29 
plt.pause(0.01)

30 
plt.clf() 
31 
#plt.show()

32  
33 
def dictAlikes(d1, d2, perc): 
34 
if (sorted(d1.keys()) != sorted(d2.keys())): 
35 
return False 
36 
for k in d1: 
37 
a = float(d1[k])

38 
b = float(d2[k])

39 
if (not b  (b*perc) <= a <= b + (b*perc)): 
40 
return False 
41 
return True 
42  
43 
def summary(v): 
44 
vmin=min(v)

45 
vmax=max(v)

46 
tot=sum(v)

47 
avg=np.mean(v) 
48 
std=np.std(v) 
49 
t = PrettyTable(['min','max', 'mean','std','tot']) 
50 
s = "%.4f %.4f %.4f %.4f %.4f" % (vmin,vmax,avg,std,tot)

51 
t.add_row(s.split()) 
52 
print t

53 
return avg, std, vmax, vmin, tot
