12def plot_all_stats(size, time, config_dict, _dir, output, recursive):
16 print(
"Calculating both size and time statistics...")
17 computer = SizeStatComputer(config_dict)
18 arr, unit, title, arr_per_event, unit_per_event, title_per_event \
19 = computer.compute(_dir, recursive)
21 computer_time = TimeStatComputer(config_dict)
22 arr_time, unit_time, title_time, arr_per_event_time, unit_per_event_time, title_per_event_time \
23 = computer_time.compute(_dir, recursive)
25 fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(20, 10))
27 axs[0][0].set_title(title)
28 axs[0][0].hist(arr, bins=config_size.BINS)
29 axs[0][0].axvline(np.mean(arr)
if arr.size > 0
else 0, linestyle=
'dashed', linewidth=1)
31 axs[0][1].set_title(title_per_event)
32 axs[0][1].hist(arr_per_event, bins=config_size.BINS_PER_EVENT)
33 axs[0][1].axvline(np.mean(arr_per_event)
if arr_per_event.size > 0
else 0, linestyle=
'dashed', linewidth=1)
35 axs[1][0].set_title(title_time)
36 axs[1][0].hist(arr_time, bins=config_time.BINS)
37 axs[1][0].axvline(np.mean(arr_time)
if arr_time.size > 0
else 0, linestyle=
'dashed', linewidth=1)
39 axs[1][1].set_title(title_per_event_time)
40 axs[1][1].hist(arr_per_event_time, bins=config_time.BINS_PER_EVENT)
41 axs[1][1].axvline(np.mean(arr_per_event_time)
if arr_per_event_time.size > 0
else 0, linestyle=
'dashed', linewidth=1)
44 print(
"Calculating file size statistics...")
45 computer = SizeStatComputer(config_dict)
47 arr, unit, title, arr_per_event, unit_per_event, title_per_event \
48 = computer.compute(_dir, recursive)
49 except NoDataException:
50 print(
"\nNo data to display - returning!")
53 fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(20, 10))
55 axs[0].set_title(title)
56 axs[0].hist(arr, bins=config_size.BINS)
57 axs[0].axvline(np.mean(arr)
if arr.size > 0
else 0, linestyle=
'dashed', linewidth=1)
59 axs[1].set_title(title_per_event)
60 axs[1].hist(arr_per_event, bins=config_size.BINS_PER_EVENT)
61 axs[1].axvline(np.mean(arr_per_event)
if arr_per_event.size > 0
else 0, linestyle=
'dashed', linewidth=1)
64 print(
"Calculating time statistics...")
65 computer = TimeStatComputer(config_dict)
67 arr, unit, title, arr_per_event, unit_per_event, title_per_event \
68 = computer.compute(_dir, recursive)
69 except NoDataException:
70 print(
"\nNo data to display - returning!")
73 fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(20, 10))
75 axs[0].set_title(title)
76 axs[0].hist(arr, bins=config_time.BINS)
77 axs[0].axvline(np.mean(arr)
if arr.size > 0
else 0, linestyle=
'dashed', linewidth=1)
79 axs[1].set_title(title_per_event)
80 axs[1].hist(arr_per_event, bins=config_time.BINS_PER_EVENT)
81 axs[1].axvline(np.mean(arr_per_event)
if arr_per_event.size > 0
else 0, linestyle=
'dashed', linewidth=1)
84 raise Exception(
'No stats to compute')
89 print(f
"\nWriting output to {output}")
90 plt.savefig(output, dpi=computer.DPI)
92 print(
"Trying to open graphics...", end=
"", flush=
True)
93 subprocess.getoutput(f
"xdg-open {output}")
95 except KeyboardInterrupt:
96 print(
" ...finishing after ^C")
98 print(
" ...unsuccessful, please open it yourself.")