@@ -123,7 +123,8 @@ def plot_animated_stack_area_chart(values, execution_id, path, ylabel, legend_la
123123 plt .close (fig )
124124
125125
126- def plot_dynamics_per_ledger (ledgers , aggregated_data_filename , top_k = - 1 , unit = 'relative' , animated = False , legend = False ):
126+ def plot_dynamics_per_ledger (ledgers , aggregated_data_filename , output_dir , top_k = - 1 , unit = 'relative' , animated = False ,
127+ legend = False ):
127128 """
128129 Plots the dynamics of pools for each ledger in terms of produced blocks
129130 :param ledgers: list of strings representing the ledgers whose data will be plotted
@@ -137,13 +138,12 @@ def plot_dynamics_per_ledger(ledgers, aggregated_data_filename, top_k=-1, unit='
137138 :param legend: bool that specifies whether the plots to be generated will include a legend or not
138139 """
139140 for ledger in ledgers :
140- ledger_path = hlp .OUTPUT_DIR / ledger
141- figures_path = ledger_path / 'figures'
142- if not figures_path .is_dir ():
143- figures_path .mkdir ()
141+ ledger_path = hlp .INTERIM_DIR / ledger
142+ figures_path = output_dir / ledger
143+ figures_path .mkdir (parents = True , exist_ok = True )
144144
145145 time_chunks , blocks_per_entity = hlp .get_blocks_per_entity_from_file (
146- filepath = ledger_path / "blocks_per_entity" / aggregated_data_filename
146+ filepath = ledger_path / hlp . get_aggregated_data_dir_name ( hlp . get_clustering_flag ()) / aggregated_data_filename
147147 )
148148
149149 total_blocks_per_time_chunk = [0 ] * len (time_chunks )
@@ -213,13 +213,10 @@ def plot_dynamics_per_ledger(ledgers, aggregated_data_filename, top_k=-1, unit='
213213 )
214214
215215
216- def plot_comparative_metrics (ledgers , metrics , animated = False ):
216+ def plot_comparative_metrics (ledgers , metrics , metrics_dir , output_dir , animated = False ):
217217 for metric in metrics :
218- figures_path = hlp .OUTPUT_DIR / 'figures'
219- if not figures_path .is_dir ():
220- figures_path .mkdir ()
221- filename = f'{ metric } .csv'
222- metric_df = pd .read_csv (hlp .OUTPUT_DIR / filename )
218+ metric_filepath = metrics_dir / f'{ metric } .csv'
219+ metric_df = pd .read_csv (metric_filepath )
223220 # only keep rows that contain at least one (non-nan) value in the columns that correspond to the ledgers
224221 metric_df = metric_df [metric_df .iloc [:, 1 :].notna ().any (axis = 1 )]
225222 ledger_columns_to_keep = [col for col in metric_df .columns if col in ledgers ]
@@ -233,7 +230,7 @@ def plot_comparative_metrics(ledgers, metrics, animated=False):
233230 x_label = 'Time' ,
234231 y_label = metric ,
235232 filename = f"{ metric } _{ '_' .join (ledger_columns_to_keep )} " ,
236- path = figures_path ,
233+ path = output_dir ,
237234 colors = colors
238235 )
239236 else :
@@ -242,24 +239,35 @@ def plot_comparative_metrics(ledgers, metrics, animated=False):
242239 x_label = 'Time' ,
243240 y_label = metric ,
244241 filename = f"{ metric } _{ '_' .join (ledger_columns_to_keep )} " ,
245- path = figures_path ,
242+ path = output_dir ,
246243 xtick_labels = metric_df ['timeframe' ],
247244 colors = colors
248245 )
249246
250247
251- def plot (ledgers , metrics , aggregated_data_filename , animated ):
248+ def plot (ledgers , metrics , aggregated_data_filename , animated , metrics_dir , figures_dir ):
252249 logging .info ("Creating plots.." )
253- plot_dynamics_per_ledger (ledgers = ledgers , aggregated_data_filename = aggregated_data_filename , animated = False , legend = True )
254- plot_comparative_metrics (ledgers = ledgers , metrics = metrics , animated = False )
250+ #plot_dynamics_per_ledger(ledgers=ledgers, aggregated_data_filename=aggregated_data_filename, output_dir=
251+ # figures_dir, animated=False, legend=True)
252+ plot_comparative_metrics (ledgers = ledgers , metrics = metrics , animated = False , metrics_dir = metrics_dir , output_dir = figures_dir )
255253 if animated :
256- plot_dynamics_per_ledger (ledgers = ledgers , aggregated_data_filename = aggregated_data_filename , animated = True )
257- plot_comparative_metrics (ledgers = ledgers , metrics = metrics , animated = True )
254+ plot_dynamics_per_ledger (ledgers = ledgers , aggregated_data_filename = aggregated_data_filename ,
255+ output_dir = figures_dir , animated = True )
256+ plot_comparative_metrics (ledgers = ledgers , metrics = metrics , animated = True , metrics_dir = metrics_dir , output_dir = figures_dir )
258257
259258
260259if __name__ == '__main__' :
261260 ledgers = hlp .get_ledgers ()
262- default_metrics = hlp .get_metrics_config ().keys ()
261+
262+ metrics = hlp .get_metrics_config ()
263+ metric_params = []
264+ for key , args in metrics .items ():
265+ if args :
266+ for val in args :
267+ metric_params .append ((f'{ key } ={ val } ' , key , val ))
268+ else :
269+ metric_params .append ((key , key , None ))
270+ default_metrics = [name for name , _ , _ in metric_params ]
263271
264272 default_start_date , default_end_date = hlp .get_start_end_dates ()
265273 timeframe_start = hlp .get_timeframe_beginning (default_start_date )
@@ -296,4 +304,4 @@ def plot(ledgers, metrics, aggregated_data_filename, animated):
296304 help = 'Flag to specify whether to also generate animated plots.'
297305 )
298306 args = parser .parse_args ()
299- plot (ledgers = args .ledgers , metrics = args .metrics , aggregated_data_filename = args .filename , animated = args .animated )
307+ plot (ledgers = args .ledgers , metrics = args .metrics , aggregated_data_filename = args .filename , animated = args .animated , results_dir = hlp . RESULTS_DIR )
0 commit comments