in bench/generation/gen_barchart.py [0:0]
def save_bar_chart(title, labels, ylabel, series, save_path):
x = np.arange(len(labels)) # the label locations
width = 0.15 # the width of the bars
multiplier = 0
fig, ax = plt.subplots(layout="constrained")
fig.set_figwidth(10)
max_value = 0
for attribute, measurement in series.items():
max_value = max(max_value, max(measurement))
offset = width * multiplier
rects = ax.bar(x + offset, measurement, width, label=attribute)
ax.bar_label(rects, padding=5)
multiplier += 1
# Add some text for labels, title and custom x-axis tick labels, etc.
ax.set_ylabel(ylabel)
ax.set_title(title)
ax.set_xticks(x + width, labels)
ax.legend(loc="upper left", ncols=4)
ax.set_ylim(0, max_value * 1.2)
plt.savefig(save_path)