Repository navigation
Expand file tree
/
Copy pathplot_statistic.py
More file actions
executable file
·76 lines (55 loc) · 2.73 KB
/
Copy pathplot_statistic.py
File metadata and controls
executable file
·76 lines (55 loc) · 2.73 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
75
76
#!/usr/bin/env python3
import matplotlib.pyplot as plt
import math
def plot_statistic(values: list[list[int]], plot_names: list[str], title_axis: tuple[str, str], show_figure = True, save_figure = True):
if len(values) != len(radiuses) != len(plot_names):
raise Exception(f"count of countours radiuses and names must be equal. \
current sizes {len(values)}, {len(radiuses)}, {len(plot_names)}")
figure_name, value_name = title_axis
fig = plt.figure(figure_name)
plt.title(figure_name)
plt.xlabel("frame number")
plt.ylabel(value_name)
for i in range(len(values)):
plt.plot(values[i], label=plot_names[i])
plt.legend()
if save_figure:
plt.savefig(figure_name + ".png")
if show_figure:
plt.show()
plt.close(fig)
def read_statistic(file_names: list[str]) -> tuple[list[list[int]], list[list[int]]]:
contours = []
radiuses = []
for name in file_names:
contour = []
radius = []
with open(name,'r') as f:
contour = list(map(int, f.readline().split()))
radius = list(map(float, f.readline().split()))
contours.append(contour)
radiuses.append(radius)
return contours, radiuses
import argparse
parser = argparse.ArgumentParser(description="Example script with command-line arguments")
parser.add_argument("--metric_files", nargs='+', type=str, default=None, help="pathes to metric files")
parser.add_argument("--plot_names", nargs='+', type=str, default=None, help="names for labels in figure")
parser.add_argument("--figure_name", type=str, default="encode", help="figure name for saving")
parser.add_argument("--directory", type=str, default="", help="directory with metric files")
parser.add_argument("--save_figure", action='store_true', help="set this flag to save png image or not")
parser.add_argument("--show_figure", action='store_true', help="set this flag to show figure or not")
args = parser.parse_args()
directory_path = args.directory if args.directory[-1] == '/' else args.directory
file_names = args.metric_files
plot_names = args.plot_names
figure_name = args.figure_name
save_figure = args.save_figure
show_figure = args.show_figure
file_names = map(lambda x: directory_path + x, file_names)
contours, radiuses = read_statistic(file_names)
plot_statistic(contours, plot_names, ('conrours ' + figure_name, 'contours count'), show_figure, save_figure)
average_radiuses = []
for i in range(len(contours)):
couple = zip(radiuses[i], contours[i])
average_radiuses.append(list(map(lambda x: 0 if math.isclose(x[1], 0) else x[0]/x[1], couple)))
plot_statistic(average_radiuses, plot_names, ('radiuses ' + figure_name, 'average radius'), show_figure, save_figure)