Révision 90924153
b/plot.py | ||
---|---|---|
1 |
#!/usr/bin/python |
|
2 |
|
|
3 |
import matplotlib.pyplot as plt |
|
4 |
import sys |
|
5 |
|
|
6 |
def usage(): |
|
7 |
print "Usage: %s [result_file_name] [graph_comment]" % sys.argv[0] |
|
8 |
sys.exit(1) |
|
9 |
|
|
10 |
def load_result_file(filename): |
|
11 |
f=open(filename) |
|
12 |
first_line=True |
|
13 |
results={} |
|
14 |
|
|
15 |
for line in f: |
|
16 |
n_clients,values = line.split()[0],[int(v) for v in line.split()[1:]] |
|
17 |
if not values: |
|
18 |
break |
|
19 |
if first_line: |
|
20 |
data_nodes_list = values |
|
21 |
first_line=False |
|
22 |
elif values: |
|
23 |
n_clients=int(n_clients) |
|
24 |
results[n_clients]={} |
|
25 |
for n_data_nodes in data_nodes_list: |
|
26 |
v_index = data_nodes_list.index(n_data_nodes) |
|
27 |
if len(values)>v_index: |
|
28 |
results[n_clients][n_data_nodes]= values[v_index] |
|
29 |
|
|
30 |
f.close() |
|
31 |
return results |
|
32 |
|
|
33 |
|
|
34 |
if __name__=="__main__": |
|
35 |
|
|
36 |
if len(sys.argv)<2: |
|
37 |
usage() |
|
38 |
else: |
|
39 |
filename = sys.argv[1] |
|
40 |
if len(sys.argv)>2: |
|
41 |
comment=sys.argv[2] |
|
42 |
else: |
|
43 |
comment=filename |
|
44 |
|
|
45 |
results = load_result_file(filename) |
|
46 |
|
|
47 |
for n_clients in results.keys(): |
|
48 |
plt.plot( |
|
49 |
results[n_clients].keys(), \ |
|
50 |
results[n_clients].values(), \ |
|
51 |
linewidth=2.0, \ |
|
52 |
label="%d clients" % n_clients \ |
|
53 |
) |
|
54 |
|
|
55 |
plt.title(comment) |
|
56 |
plt.xlabel("Number of Data Nodes") |
|
57 |
plt.ylabel("DFS Aggregated Write Speed") |
|
58 |
plt.axis([0, 16, 0, 2000]) |
|
59 |
plt.grid(True) |
|
60 |
plt.legend(loc='upper right') |
|
61 |
|
|
62 |
plt.savefig(filename+".png", bbox_inches=0) |
|
63 |
|
Formats disponibles : Unified diff