def bar_plot(x, curves, title="", width=0.10,
            colors=['b', 'g', 'r', 'c', 'm', 'y', 'k'],
            log_scale_y=False, log_scale_x=False, legend=True,
            x_title="X Label", y_title="Y Label"):
    # Set Appearance properties using Seaborn
    sns.set(style="white", color_codes=True, font_scale=1.2)
    sns.set_style("ticks", {"xtick.major.size": 3, "ytick.major.size": 2})
    #sns.set_titles(col_template = "{col_name}", fontweight = 'bold', size = 18)
    # - - - - - - - -- - - - - - - - -
    x = x.astype(float)
    fig, ax = plt.subplots()
    bars = []
    # Stores the information about how many bars are saved on a X-Location.
    x_location_map = dict()

    # Pre-Process and adjust X-axis location data
    for i, j in enumerate(x):
        for l, k in enumerate(j):
            if k in x_location_map:
                x[i][l] = x[i][l] + (x_location_map[k] * width)
                x_location_map[k] += 1
            else:
                x_location_map[k] = 1
    # - - - - - - - - - - - - -
    for i, j in enumerate(x):
        bar = ax.bar(
            j,
            curves[i][0],
            width,
            yerr=curves[i][1],
            color=colors[i],
            error_kw=dict(
                ecolor='#525252',
                capsize=3,
                capthick=1.5))
        bars.append(bar)

    ax.set_ylabel(y_title, fontsize=14)
    ax.set_xlabel(x_title, fontsize=14)
    ax.set_title(title, fontsize=15)
    ax.set_xticks([i + ((x_location_map[i] * width) / 2)
                   for i in x_location_map])
    ax.set_xticklabels([int(i) for i in x_location_map])
    if legend:
    	ax.legend(bars, ["Curve " + str(i + 1) for i, j in enumerate(bars)], loc=0)
    if log_scale_x:
        plt.xscale('log')
    if log_scale_y:
        plt.yscale('log')
    return plt
Plots Mean and Standard Deviation with a Bar Graph
dataset/ETHPy150Open automl/RoBO/robo/visualization/evaluation.py/bar_plot