aboutsummaryrefslogtreecommitdiff
path: root/benchmark/agbenchmark/reports/processing/gen_combined_chart.py
diff options
context:
space:
mode:
Diffstat (limited to 'benchmark/agbenchmark/reports/processing/gen_combined_chart.py')
-rw-r--r--benchmark/agbenchmark/reports/processing/gen_combined_chart.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/benchmark/agbenchmark/reports/processing/gen_combined_chart.py b/benchmark/agbenchmark/reports/processing/gen_combined_chart.py
new file mode 100644
index 000000000..f7140de68
--- /dev/null
+++ b/benchmark/agbenchmark/reports/processing/gen_combined_chart.py
@@ -0,0 +1,45 @@
+import json
+import os
+from pathlib import Path
+
+from agbenchmark.reports.processing.graphs import (
+ save_combined_bar_chart,
+ save_combined_radar_chart,
+)
+from agbenchmark.reports.processing.process_report import (
+ all_agent_categories,
+ get_reports_data,
+)
+
+
+def generate_combined_chart() -> None:
+ all_agents_path = Path(__file__).parent.parent.parent.parent / "reports"
+
+ combined_charts_folder = all_agents_path / "combined_charts"
+
+ reports_data = get_reports_data(str(all_agents_path))
+
+ categories = all_agent_categories(reports_data)
+
+ # Count the number of directories in this directory
+ num_dirs = len([f for f in combined_charts_folder.iterdir() if f.is_dir()])
+
+ run_charts_folder = combined_charts_folder / f"run{num_dirs + 1}"
+
+ if not os.path.exists(run_charts_folder):
+ os.makedirs(run_charts_folder)
+
+ info_data = {
+ report_name: data.benchmark_start_time
+ for report_name, data in reports_data.items()
+ if report_name in categories
+ }
+ with open(Path(run_charts_folder) / "run_info.json", "w") as f:
+ json.dump(info_data, f)
+
+ save_combined_radar_chart(categories, Path(run_charts_folder) / "radar_chart.png")
+ save_combined_bar_chart(categories, Path(run_charts_folder) / "bar_chart.png")
+
+
+if __name__ == "__main__":
+ generate_combined_chart()