Files
wehub-resource-sync c889a57b6b
Test Suites / Build CI Environment (push) Has been cancelled
Test Suites / Basic Tests (push) Has been cancelled
Test Suites / End-to-End Tests (push) Has been cancelled
Test Suites / CLI Tests (push) Has been cancelled
Test Suites / Slow End-to-End Tests (push) Has been cancelled
Test Suites / Graph Database Tests (push) Has been cancelled
Test Suites / Vector DB Tests (push) Has been cancelled
Test Suites / Temporal Graph Test (push) Has been cancelled
Test Suites / Search Test on Different DBs (push) Has been cancelled
Test Suites / Example Tests (push) Has been cancelled
Test Suites / Notebook Tests (push) Has been cancelled
Test Suites / OS and Python Tests Ubuntu (push) Has been cancelled
Test Suites / OS and Python Tests Extended (push) Has been cancelled
Test Suites / LLM Test Suite (push) Has been cancelled
Test Suites / S3 File Storage Test (push) Has been cancelled
Test Suites / Run Integration Tests (push) Has been cancelled
Test Suites / MCP Tests (push) Has been cancelled
Test Suites / Docker Compose Test (push) Has been cancelled
Test Suites / Docker CI test (push) Has been cancelled
Test Suites / Relational DB Migration Tests (push) Has been cancelled
Test Suites / Distributed Cognee Test (push) Has been cancelled
Test Suites / DB Examples Tests (push) Has been cancelled
Test Suites / Test Completion Status (push) Has been cancelled
Test Suites / Claude Code Review (push) Has been cancelled
Test Suites / basic checks (push) Has been cancelled
build | Build and Push Cognee MCP Docker Image to dockerhub / docker-build-and-push (push) Has been cancelled
Scorecard supply-chain security / Scorecard analysis (push) Has been cancelled
build | Build and Push Docker Image to dockerhub / docker-build-and-push (push) Has been cancelled
Weighted Edges Tests / Test Weighted Edges Core Functionality (3.11) (push) Has been cancelled
Weighted Edges Tests / Test Weighted Edges Core Functionality (3.12) (push) Has been cancelled
Weighted Edges Tests / Test Weighted Edges with Different Graph Databases (kuzu, kuzu) (push) Has been cancelled
Weighted Edges Tests / Test Weighted Edges with Different Graph Databases (neo4j, neo4j) (push) Has been cancelled
Weighted Edges Tests / Test Weighted Edges Examples (push) Has been cancelled
Weighted Edges Tests / Code Quality for Weighted Edges (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:02:24 +08:00

96 lines
3.0 KiB
Python

import json
import matplotlib.pyplot as plt
import numpy as np
import sys
def load_benchmark_data(filename):
"""Load benchmark data from JSON file."""
with open(filename, "r") as f:
return json.load(f)
def visualize_benchmarks(benchmark_file, output_file=None):
"""Visualize benchmark results with error bars."""
# Load data
data = load_benchmark_data(benchmark_file)
# Define metrics to plot
metrics = ["Human-like Correctness", "DeepEval Correctness", "DeepEval EM", "DeepEval F1"]
colors = ["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728"]
# Setup plot
fig, ax = plt.subplots(figsize=(14, 8))
# Get system names
systems = [system["system"] for system in data]
x_pos = np.arange(len(systems))
# Plot each metric
for i, metric in enumerate(metrics):
means = []
errors_lower = []
errors_upper = []
for system in data:
if metric in system:
means.append(system[metric])
error_key = f"{metric} Error"
if error_key in system:
errors_lower.append(system[metric] - system[error_key][0])
errors_upper.append(system[error_key][1] - system[metric])
else:
errors_lower.append(0)
errors_upper.append(0)
else:
means.append(0)
errors_lower.append(0)
errors_upper.append(0)
# Plot bars with error bars
ax.bar(x_pos + i * 0.2, means, 0.2, label=metric, color=colors[i], alpha=0.8)
# Add error bars
for j, (mean, err_lower, err_upper) in enumerate(zip(means, errors_lower, errors_upper)):
if mean > 0: # Only show error bars for non-zero values
ax.errorbar(
x_pos[j] + i * 0.2,
mean,
yerr=[[err_lower], [err_upper]],
fmt="none",
color="black",
capsize=3,
capthick=1,
)
# Customize plot
ax.set_xlabel("Systems", fontsize=12)
ax.set_ylabel("Score", fontsize=12)
ax.set_title("Benchmark Results", fontsize=14, fontweight="bold")
ax.set_xticks(x_pos + 0.3) # Center the x-ticks
ax.set_xticklabels(systems, rotation=45, ha="right")
ax.legend(bbox_to_anchor=(1.05, 1), loc="upper left")
ax.grid(True, alpha=0.3)
ax.set_ylim(0, 1.1)
# Adjust layout
plt.tight_layout()
# Save or show
if output_file:
plt.savefig(output_file, dpi=300, bbox_inches="tight")
print(f"Plot saved as {output_file}")
else:
plt.show()
if __name__ == "__main__":
# Hardcoded benchmark files
benchmark_file = "benchmark_summary_competition.json"
# benchmark_file = "benchmark_summary_cognee.json"
# Comment out which one you want to visualize
# visualize_benchmarks(competition_file, competition_file.replace('.json', '.png'))
visualize_benchmarks(benchmark_file, benchmark_file.replace(".json", ".png"))