Skip to content
Snippets Groups Projects
Commit ad353c86 authored by David Nieder's avatar David Nieder
Browse files

plot benchmark results

parent 8f597be8
No related branches found
No related tags found
No related merge requests found
py-venv/
This diff is collapsed.
hash function,probing method,max alpha,grow factor,time
division,linear,0.5,2,0.259
division,linear,0.5,4,0.264
division,linear,0.75,2,0.1823
division,quadratic,0.5,2,0.261
division,quadratic,0.5,4,0.266
division,quadratic,0.75,2,0.185
division,double,0.5,2,0.258
division,double,0.5,4,0.263
division,double,0.75,2,0.182
muitiplication,linear,0.5,2,2.343
muitiplication,linear,0.5,4,2.261
muitiplication,linear,0.75,2,1.899
muitiplication,quadratic,0.5,2,5.272
muitiplication,quadratic,0.5,4,4.918
muitiplication,quadratic,0.75,2,4.981
muitiplication,double,0.5,2,19.559
muitiplication,double,0.5,4,18.440
muitiplication,double,0.75,2,15.571
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv("data.csv")
x_labels = ["div, linear", "div, quadratic",
"div, double", "mul, linear",
"mul, quadratic", "mul, double"]
description = "\n".join(["div: hashing by division",
"mul: hashing by multiplication",
"linear: linear probing",
"quadratic: quadratic probing",
"double: double hashing"])
alpha5s2 = df[(df["max alpha"] == 0.5) & (df["grow factor"] == 2)]["time"].array
alpha5s4 = df[(df["max alpha"] == 0.5) & (df["grow factor"] == 4)]["time"].array
alpha75s2 = df[(df["max alpha"] == 0.75) & (df["grow factor"] == 2)]["time"].array
x = np.arange(len(x_labels))
width = 0.3
fig, ax = plt.subplots(figsize=[12.8, 9.6], layout="constrained")
rects1 = ax.bar(x - width, alpha5s2, width, label="α: 0.5, s: 2")
rects2 = ax.bar(x, alpha5s4, width, label="α: 0.5, s: 4")
rects3 = ax.bar(x + width, alpha75s2, width, label="α: 0.75, s: 2")
ax.set_ylabel("Time [seconds]")
ax.set_title("Insertion Times")
ax.set_xticks(x, x_labels)
ax.legend(loc="upper left")
props = {"boxstyle": "round", "facecolor": "white", "edgecolor": "grey", "alpha": 0.3}
ax.text(0.01, 0.9, description, transform=ax.transAxes, fontsize=12,
verticalalignment="top", bbox=props)
ax.bar_label(rects1, padding=5)
ax.bar_label(rects2, padding=5)
ax.bar_label(rects3, padding=5)
fig.tight_layout()
plt.savefig("barplot.svg")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment