-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathextractJsonCreateGraph.py
More file actions
74 lines (70 loc) · 2.34 KB
/
extractJsonCreateGraph.py
File metadata and controls
74 lines (70 loc) · 2.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import getScoresFromMongoDB
import pprint
import re
from pylab import *
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import time
import argparse
argparser = argparse.ArgumentParser()
# argparser.add_argument('--option', type=str, default="RN_CPUUsage")
argparser.add_argument('--option', type=str)
argparser.add_argument('--bgroup', type=str, default="stashing")
argparser.add_argument('--bname', type=str, default="tradebeans")
argparser.add_argument('--limit', type=int, default=10)
args = argparser.parse_args()
regressions = getScoresFromMongoDB.main(args.bgroup, args.bname, args.limit)
# pprint.pprint(regressions)
def getOptionData(option):
# print(f'XXXXXXXX {option}')
y = []
x = []
better = ""
for builds, scores in regressions.items():
for score in scores:
pattern = "(.*)"+str(option)+"(.*)"
if re.search(pattern, str(score.keys())):
x.append(str(builds))
y.append(float(list(score.values())[0][0]))
better = list(score.values())[0][1]
return (x, y, better)
if args.option:
plt.style.use('ggplot')
fig = plt.figure()
x, y, better = getOptionData(args.option)
plt.rcParams['lines.linewidth'] = 2
plt.rcParams['lines.color'] = 'r'
plt.xticks(rotation=30)
plt.yticks(rotation=45)
plt.xlabel('BUILDS')
plt.ylabel('SCORES')
plt.title(f'{args.option} GRAPH with {better}')
plt.legend(f'{args.option}')
plt.plot(x, y)
plt.show()
else:
plt.style.use('ggplot')
fig = plt.figure()
workloadArray = (list(regressions.values())[0])
# print(workloadArray)
for i in range(len(workloadArray)):
workloadDict = (workloadArray[i].keys())
x = y = []
better = ''
for workload in workloadDict:
print(workload)
x, y, better = getOptionData(workload)
print('---------------')
a = int((len(workloadArray))/2)
try:
print(x)
print(y)
plt.subplot(a,2,i+1)
plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=2)
plt.plot(x,y)
plt.title(f'{workload} - {better}', fontsize=8)
plt.xticks(fontsize=5, rotation=70)
plt.xticks(fontsize=5, rotation=45)
except:
continue
plt.show()