aider/benchmark/swe_bench_lite.py
Paul Gauthier ee7dcd5071 aider: Adjust alpha values for bars based on model name containing "Aider".
# Aider chat conversation:

USER: can we use more alpha for the aider bars and less alpha for the other bars?

ASSISTANT: To adjust the alpha values for the bars, we need to modify the section where the bars are created and set their alpha values based on whether the model name contains "Aider".

Here is the *SEARCH/REPLACE* block:

benchmark/swe_bench_lite.py
```python
<<<<<<< SEARCH
    bars = ax.bar(models, pass_rates, color=colors, alpha=0.75, zorder=3)
=======
    bars = []
    for model, pass_rate, color in zip(models, pass_rates, colors):
        alpha = 0.9 if "Aider" in model else 0.5
        bar = ax.bar(model, pass_rate, color=color, alpha=alpha, zorder=3)
        bars.append(bar[0])
>>>>>>> REPLACE
```
2024-05-23 09:48:53 -07:00

78 lines
2.2 KiB
Python

import matplotlib.pyplot as plt
from imgcat import imgcat
from matplotlib import rc
def plot_swe_bench_lite(data_file):
with open(data_file, "r") as file:
lines = file.readlines()
models = []
pass_rates = []
for line in lines:
if line.strip():
pass_rate, model = line.split("%")
model = model.strip()
model = model.replace("|", "\n")
models.append(model.strip())
pass_rates.append(float(pass_rate.strip()))
plt.rcParams["hatch.linewidth"] = 0.5
plt.rcParams["hatch.color"] = "#444444"
font_color = "#555"
rc("font", **{"family": "sans-serif", "sans-serif": ["Helvetica"], "size": 10})
plt.rcParams["text.color"] = font_color
fig, ax = plt.subplots(figsize=(10, 5))
ax.grid(axis="y", zorder=0, lw=0.2)
for spine in ax.spines.values():
spine.set_edgecolor("#DDDDDD")
spine.set_linewidth(0.5)
colors = ["#b3e6a8" if "Aider" in model else "#b3d1e6" for model in models]
bars = []
for model, pass_rate, color in zip(models, pass_rates, colors):
alpha = 0.9 if "Aider" in model else 0.5
bar = ax.bar(model, pass_rate, color=color, alpha=alpha, zorder=3)
bars.append(bar[0])
for model, bar in zip(models, bars):
yval = bar.get_height()
if "Aider" in model:
y = yval + 0.75
va = "bottom"
else:
y = yval - 1.25
va = "top"
ax.text(
bar.get_x() + bar.get_width() / 2,
y,
f"{yval}%",
ha="center",
va=va,
fontsize=14,
# alpha=0.75,
)
# ax.set_xlabel("Models", fontsize=18)
ax.set_ylabel("Instances resolved (%)", fontsize=18, color=font_color)
ax.set_title("SWE Bench Lite", fontsize=20)
ax.set_ylim(0, 29.9)
plt.xticks(
# rotation=45,
# ha="center",
fontsize=16,
color=font_color,
)
plt.tight_layout(pad=3.0)
plt.savefig("swe_bench_lite.jpg")
plt.savefig("swe_bench_lite.svg")
imgcat(fig)
ax.xaxis.label.set_color(font_color)
# Example usage
plot_swe_bench_lite("benchmark/tmp.txt")