Allow to select datafile for charts/explore/compare (filtered/non-filtered)

This commit is contained in:
2026-06-14 17:06:43 +02:00
parent 1d1ed3581a
commit e3be326c42
7 changed files with 226 additions and 70 deletions

View File

@ -241,13 +241,18 @@ my %handlers = (
my @selected_experiments = Util::select_experiment(1);
# TODO: Fails silently if not every selected experiment has this datafile
my $resultsdata_csv =
Util::pick_data_file( "$local_archive_dir/$selected_experiments[0]",
"resultsdata" );
# Read results
my %all_results;
foreach my $experiment (@selected_experiments) {
# Schema: benchmark, resulttype, faults
my $data = Text::CSV_XS::csv(
in => "$local_archive_dir/$experiment/resultsdata.csv",
in => "$local_archive_dir/$experiment/$resultsdata_csv",
headers => 'auto'
);
@ -479,15 +484,38 @@ my %handlers = (
TUI::select_from_list( "Select Plots to Generate", 1, @charts );
die "No plot selected" unless @selected_charts;
# Need to know which chart uses which datafile
my @faults_charts = grep { /heatmap|scatter|sankey/ } @selected_charts;
my @resultsdata_charts =
grep { /result$|combined_comparison/ } @selected_charts;
my $faults_csv;
my $resultsdata_csv;
if (@faults_charts) {
$faults_csv = Util::pick_data_file(
"$local_archive_dir/$selected_experiments[0]", "faults" );
}
if (@resultsdata_charts) {
$resultsdata_csv = Util::pick_data_file(
"$local_archive_dir/$selected_experiments[0]",
"resultsdata" );
}
my @single_charts = grep { /single/ } @selected_charts;
foreach my $experiment (@selected_experiments) {
foreach my $chart (@single_charts) {
say " - Generating plot $chart for $experiment...";
system(
my @r_args = (
'Rscript',
"$local_charts_dir/$chart.r",
"$local_archive_dir/$experiment"
);
push @r_args, $faults_csv
if defined $faults_csv && $chart =~ /heatmap|scatter|sankey/;
push @r_args, $resultsdata_csv
if defined $resultsdata_csv
&& $chart =~ /result$|combined_comparison/;
system(@r_args);
}
}
@ -497,8 +525,14 @@ my %handlers = (
map { "$local_archive_dir/$_" } @selected_experiments;
foreach my $chart (@combined_charts) {
say " - Generating plot $chart for ($print_experiments)...";
system( 'Rscript', "$local_charts_dir/$chart.r",
@path_experiments );
my @r_args =
( 'Rscript', "$local_charts_dir/$chart.r", @path_experiments );
push @r_args, $faults_csv
if defined $faults_csv && $chart =~ /heatmap|scatter|sankey/;
push @r_args, $resultsdata_csv
if defined $resultsdata_csv
&& $chart =~ /result$|combined_comparison/;
system(@r_args);
}
},