def generate_bar_plot(df):
    df_grouped = df.groupby(['title', 'it_ot'])
    df_grouped_mean = df_grouped.mean()
    df_grouped_std = df_grouped.std()
    (_, ax) = plt.subplots(1, len(METRICS), figsize=(10, 5))
    for (idx, metric) in enumerate(METRICS):
        df_mean = df_grouped_mean.get(metric).unstack()
        df_std = df_grouped_std.get(metric).unstack()
        df_mean.plot.bar(ax=ax[idx], yerr=df_std, use_index=False, ylim=(0, None))
        ax[idx].set_title(METRICS_TITLE[idx], fontdict=dict(fontsize=9))
        ax[idx].set_xticklabels(df_mean.index)
        leg = ax[idx].legend(frameon=True, fontsize=8)
        leg.set_title(None)
def generate_bar_plot(df):
    df_grouped = df.groupby(['title', 'it_ot'])
    df_grouped_mean = df_grouped.mean()
    df_grouped_std = df_grouped.std()
    (_, ax) = plt.subplots(1, len(METRICS), figsize=(10, 5))
    for (idx, metric) in enumerate(METRICS):
        df_mean = df_grouped_mean.get(metric).unstack()
        df_std = df_grouped_std.get(metric).unstack()
        df_mean.plot.bar(ax=ax[idx], yerr=df_std, use_index=False, ylim=(0, None))
        ax[idx].set_title(METRICS_TITLE[idx], fontdict=dict(fontsize=9))
        ax[idx].set_xticklabels(df_mean.index)
        leg = ax[idx].legend(frameon=True, fontsize=8)
        leg.set_title(None)