wangzelin.wzl 93a1074b0c patch 4.0
2022-10-24 17:57:12 +08:00

68 lines
1.6 KiB
Python
Executable File

#!/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)