patch 4.0
This commit is contained in:
67
unittest/storage/plot.py
Executable file
67
unittest/storage/plot.py
Executable file
@ -0,0 +1,67 @@
|
||||
#!/bin/env python
|
||||
__author__ = 'dongyun.zdy'
|
||||
|
||||
|
||||
import sys
|
||||
import numpy as np
|
||||
import matplotlib as mpl
|
||||
from matplotlib import cm
|
||||
import matplotlib.pyplot as plt
|
||||
from mpl_toolkits.mplot3d import Axes3D
|
||||
import math
|
||||
|
||||
def extract_info_from_line(line):
|
||||
splited = line.split(",")
|
||||
cost = int(splited[0])
|
||||
cost_est = int(float(splited[1]))
|
||||
row = int(splited[2])
|
||||
row_est = int(float(splited[3]))
|
||||
return (cost, cost_est, row, row_est)
|
||||
|
||||
def case_cmp(a,b):
|
||||
if a[2] < b[2] :
|
||||
return -1
|
||||
elif a[2] > b[2] :
|
||||
return 1
|
||||
else :
|
||||
return 0
|
||||
|
||||
def do_plot(arg, cost_to_nsec_arg):
|
||||
costs = np.array([a[0] for a in arg])
|
||||
cost_ests = np.array([a[1] for a in arg])
|
||||
rows = np.array([a[2] for a in arg])
|
||||
row_ests = np.array([a[3] for a in arg])
|
||||
|
||||
K = cost_to_nsec_arg[0]
|
||||
#b = cost_to_nsec_arg[1]
|
||||
|
||||
fig = plt.figure()
|
||||
fig.set_size_inches((20,10))
|
||||
ax1 = fig.add_subplot(121)
|
||||
ax1.plot(rows, costs, color="red")
|
||||
ax1.plot(rows, cost_ests, color="blue")
|
||||
ax1.plot(rows, K * cost_ests, color="green")
|
||||
ax2 = fig.add_subplot(122)
|
||||
ax2.scatter(rows, row_ests)
|
||||
|
||||
plt.show()
|
||||
|
||||
if __name__ == '__main__':
|
||||
file_name = ""
|
||||
|
||||
cost_to_nsec_arg_str = raw_input()
|
||||
cost_to_nsec_arg = eval(cost_to_nsec_arg_str)
|
||||
|
||||
if len(sys.argv) < 2:
|
||||
print "wrong arg"
|
||||
pass
|
||||
else:
|
||||
file_name = sys.argv[1]
|
||||
file = open(file_name, "r")
|
||||
cases = []
|
||||
for line in file:
|
||||
case_param = extract_info_from_line(line)
|
||||
cases.append(case_param)
|
||||
cases.sort(case_cmp)
|
||||
|
||||
do_plot(cases,cost_to_nsec_arg)
|
||||
Reference in New Issue
Block a user