diff --git a/scripts/plot_library.py b/scripts/plot_library.py
deleted file mode 100644
index 3d8955396babc2bf4d55c642f645d76a629a6d61..0000000000000000000000000000000000000000
--- a/scripts/plot_library.py
+++ /dev/null
@@ -1,231 +0,0 @@
-
-
-import evalys.visu.legacy as vleg
-from matplotlib import figure, pyplot as plt
-import numpy as np
-import pandas
-from scripts.util import JobSetMulticore,intersect_windows
-def plot_load_and_details(expe_file):
-    begin, end = 24 * 3600, 48 * 3600
-
-    js = JobSetMulticore.from_csv(expe_file + "/_jobs.csv")
-    js.df = js.df[(js.df.submission_time >= begin) & (js.df.submission_time < end)]
-    fig, axe = plt.subplots(nrows=2, sharex=True, figsize=(16, 8), tight_layout=True)
-    fig.suptitle(expe_file, fontsize=16)
-    vleg.plot_load(js.utilisation, js.MaxProcs, time_scale=False, ax=axe[0])
-    vleg.plot_job_details(js.df, js.MaxProcs, time_scale=False, ax=axe[1])
-
-    for ax in axe:
-        ax.xaxis.set_ticks(np.arange(begin, end, 2 * 3600))
-        ax.xaxis.set_ticklabels(np.arange(24, 48, 2))
-
-    plt.xlim(begin, end)
-    fig.savefig(expe_file + '_viz.png')
-    plt.show()
-    plt.close(fig)
-
-
-def plot_energy_consumed(out_dir, red_windows, yellow_windows, label=None, tick_size=2, begin_time=0, end_time=None):
-    if label is None:
-        label = out_dir
-    data = pandas.read_csv(out_dir + "/_consumed_energy.csv")
-    for red_window in red_windows:
-        plot_window(red_window, "red")
-    for yellow_window in yellow_windows:
-        plot_window(yellow_window, "yellow")
-    ax_1 = plt.gca()
-    data.plot(x="time", y="energy", ax=ax_1, xlim=(begin_time, end_time), label=label)
-    ax_1.xaxis.set_ticks(np.arange(begin_time, end_time, tick_size * 3600))
-    ax_1.xaxis.set_ticklabels(np.arange(begin_time // 3600, end_time // 3600, tick_size))
-
-def plot_window_list(red_window_list, yellow_window_list, begin_exp, end_exp, tick=12,width=21,height=5):
-    plt.figure(figsize=(width,height))
-    plot_window([begin_exp, end_exp], "green")
-    for red_window in red_window_list:
-        if intersect_windows([begin_exp,end_exp],red_window) :
-            plot_window(red_window, "red")
-    for yellow_window in yellow_window_list:
-        if intersect_windows([begin_exp,end_exp],yellow_window) :
-            plot_window(yellow_window, "yellow")
-    ax = plt.gca()
-    ax.xaxis.set_ticks(np.arange(begin_exp, end_exp + 1, tick * 3600))
-    ax.xaxis.set_ticklabels(np.arange(begin_exp // 3600, end_exp // 3600 + 1, tick)%24,fontsize=12)
-
-def plot_window_list_extra(red_window_list, yellow_window_list,
-                           begin_exp, end_exp,red_threshold,yellow_threshold,
-                           energy_produced_dataframe, offset_day_production, tick=12,width=21,height=5,fontsize=12) :
-
-    plt.figure(figsize=(width, height))
-    offset_time_prod = offset_day_production*24*3600
-    energy_produced_dataframe["time"] -= offset_time_prod
-    energy_produced_dataframe_sub = energy_produced_dataframe[energy_produced_dataframe.time <= end_exp]
-    energy_produced_dataframe_sub = energy_produced_dataframe_sub[energy_produced_dataframe_sub.time >= begin_exp]
-    power_produced_max = energy_produced_dataframe_sub["power"].max()
-    plot_window([begin_exp, end_exp], "green",label=True)
-    first_window = True
-    for red_window in red_window_list:
-        if intersect_windows([begin_exp, end_exp], red_window):
-            plot_window(red_window, "red",label=first_window)
-            first_window = False
-    first_window = True
-    for yellow_window in yellow_window_list:
-        if intersect_windows([begin_exp, end_exp], yellow_window):
-            plot_window(yellow_window, "yellow",label=first_window)
-            first_window=False
-    ax = plt.gca()
-    energy_produced_dataframe_sub.plot.scatter(x="time",y="power",ax=ax,zorder=500,label="power produced")
-    plt.axhline(red_threshold,label="red threshold",color="black")
-    plt.axhline(yellow_threshold, label="yellow threshold",color="black",linestyle="dashed")
-    ax.xaxis.set_ticks(np.arange(begin_exp, end_exp + 1, tick * 3600))
-    ax.xaxis.set_ticklabels(np.arange(begin_exp // 3600, end_exp // 3600 + 1, tick) % 24,fontsize=fontsize)
-    power_max=int((power_produced_max*1.2)//100*100)
-    tick_y = power_max // 10
-    ax.yaxis.set_ticks(np.arange(0,power_max,tick_y,dtype=int))
-    ax.yaxis.set_ticklabels(np.arange(0,power_max,tick_y,dtype=int),fontsize=fontsize)
-    plt.xlabel("time (in hour of the day)",fontsize=fontsize)
-    plt.ylabel("power (in Watt)",fontsize=fontsize)
-def plot_window(window, window_type, label=False):
-    [begin, end] = window
-    label_name = None
-    if window_type == "red":
-        color_fig = "#FDA3AB"
-        if label:
-            label_name = "red_window"
-    elif window_type == "yellow":
-        color_fig = "#F9F99C"
-        if label:
-            label_name = "yellow_window"
-    elif window_type == "green":
-        color_fig = "#DDFDCC"
-        if label:
-            label_name = "green_window"
-    else:
-        print("[Warning] undefined window color ")
-        return
-    plt.axvspan(xmin=begin, xmax=end, color=color_fig, label=label_name)
-
-
-def plot_load_windows(expe_file_list, expe_name_list, color_panel=None, red_windows=None, yellow_windows=None,
-                      begin_time=24, end_time=48,
-                      split=12, interactive=False,width=20,height=10,fontsize=10):
-    if yellow_windows is None:
-        yellow_windows = []
-    if red_windows is None:
-        red_windows = []
-    nb_exp = len(expe_name_list)
-    begin, end = begin_time * 3600, end_time * 3600
-    fig = plt.figure(figsize=(width, height))
-    plot_window([begin, end], "green")
-    top=100
-    for expe_file, expe_name in zip(expe_file_list, expe_name_list):
-        js = JobSetMulticore.from_csv(expe_file + "/_jobs.csv")
-        js.df = js.df[(js.df.submission_time >= begin) & (js.df.submission_time < end)]
-        vleg.plot_load(js.utilisation, js.MaxProcs, legend_label=expe_name)
-        top = max(js.MaxProcs + 100.0,top)
-    ax = plt.gca()
-
-    ax.xaxis.set_ticks(np.arange(begin, end, split * 3600))
-    ax.xaxis.set_ticklabels(np.arange(begin_time, end_time, split)%24,fontsize=fontsize)
-
-    ax.set_ylim(bottom=-10.0, top=top)
-
-    for window in yellow_windows:
-        plot_window(window, "yellow")
-
-    if color_panel:
-        for line, color in zip(plt.gca().get_lines()[::3], color_panel):
-            print(line, color)
-            line.set_color(color)
-    for window in red_windows:
-        plot_window(window, "red")
-    plt.xlim(begin, end)
-    for label in (ax.get_xticklabels() + ax.get_yticklabels()):
-        label.set_fontsize(fontsize)
-    lgd = ax.legend(bbox_to_anchor=(1, 0.5), loc="upper left")
-    plt.xlabel("time (in hour of the day)",fontsize=fontsize)
-    plt.ylabel("Load of the server (in number of core)",fontsize=fontsize)
-    fig.savefig(expe_file_list[0] + 'comparative_viz.png', bbox_extra_artists=(lgd,), bbox_inches='tight')
-    fig.savefig(expe_file_list[0] + 'comparative_viz.svg', bbox_extra_artists=(lgd,), bbox_inches='tight')
-    plt.show()
-    if not interactive:
-        plt.close(fig)
-
-def plot_queue_windows(expe_file_list, expe_name_list, color_panel=None, red_windows=None, yellow_windows=None,
-                      begin_time=24, end_time=48,
-                      split=12, interactive=False,
-                       width=20,height=10,fontsize=10):
-    if yellow_windows is None:
-        yellow_windows = []
-    if red_windows is None:
-        red_windows = []
-    nb_exp = len(expe_name_list)
-    begin, end = begin_time * 3600, end_time * 3600
-    fig = plt.figure(figsize=(width, height))
-    plot_window([begin, end], "green")
-    top = 100
-    for expe_file, expe_name in zip(expe_file_list, expe_name_list):
-        js = JobSetMulticore.from_csv(expe_file + "/_jobs.csv")
-        js.df = js.df[(js.df.submission_time >= begin) & (js.df.submission_time < end)]
-        vleg.plot_load(js.queue, js.MaxProcs, legend_label=expe_name)
-        top=max(top,6*js.MaxProcs)
-    ax = plt.gca()
-
-    ax.xaxis.set_ticks(np.arange(begin, end, split * 3600))
-    ax.xaxis.set_ticklabels(np.arange(begin_time, end_time, split) % 24,fontsize=fontsize)
-    ax.set_ylim(bottom=-10.0,top=top)
-    end_y=top//100*100
-    tick = end_y//10
-    ax.yaxis.set_ticks(np.arange(0,end_y,tick))
-    ax.yaxis.set_ticklabels(np.arange(0,end_y,tick),fontsize=fontsize)
-    plt.xlabel("time of the day",fontsize=fontsize)
-    plt.ylabel("queue_size",fontsize=fontsize)
-    for window in yellow_windows:
-        plot_window(window, "yellow")
-
-    if color_panel:
-        for line, color in zip(plt.gca().get_lines()[::3], color_panel):
-            print(line, color)
-            line.set_color(color)
-    for window in red_windows:
-        plot_window(window, "red")
-    plt.xlim(begin, end)
-    lgd = ax.legend(bbox_to_anchor=(1, 0.5), loc="upper left")
-    fig.savefig(expe_file_list[0] + 'comparative_queue_viz.png', bbox_extra_artists=(lgd,), bbox_inches='tight')
-    fig.savefig(expe_file_list[0] + 'comparative_queue_viz.svg', bbox_extra_artists=(lgd,), bbox_inches='tight')
-    plt.show()
-    if not interactive:
-        plt.close(fig)
-def plot_load_and_details_windows(expe_file, red_windows=None, yellow_windows=None, begin_time=24, end_time=48,
-                                  tick_size=2):
-    if yellow_windows is None:
-        yellow_windows = []
-    if red_windows is None:
-        red_windows = []
-    begin, end = begin_time * 3600, end_time * 3600
-    js = JobSetMulticore.from_csv(expe_file + "/_jobs.csv")
-    # js.df = js.df[(js.df.submission_time >= begin) & (js.df.submission_time < end)]
-    fig, axe = plt.subplots(nrows=2, sharex=True, figsize=(16, 8), tight_layout=True)
-    fig.suptitle(expe_file, fontsize=16)
-    vleg.plot_load(js.utilisation, js.MaxProcs, time_scale=False, ax=axe[0])
-    vleg.plot_job_details(js.df, js.MaxProcs, time_scale=False, ax=axe[1])
-
-    for ax in axe:
-        ax.xaxis.set_ticks(np.arange(begin, end, tick_size * 3600))
-        ax.xaxis.set_ticklabels(np.arange(begin_time, end_time, tick_size))
-
-    for window in yellow_windows:
-        plt.sca(axe[0])
-        plot_window(window, "yellow")
-        plt.sca(axe[1])
-        plot_window(window, "yellow")
-
-    for window in red_windows:
-        plt.sca(axe[0])
-        plot_window(window, "red")
-        plt.sca(axe[1])
-        plot_window(window, "red")
-    plt.xlim(begin, end)
-    fig.savefig(expe_file + '_viz.png')
-    fig.savefig(expe_file + '_viz.svg')
-    plt.show()
-    plt.close(fig)
diff --git a/scripts/util.py b/scripts/util.py
index 407a04a4b5f4c60ff7443eed1f0b7e26bb88a110..f2397c91284c2f45eea5a3fa3c3944cce6225851 100644
--- a/scripts/util.py
+++ b/scripts/util.py
@@ -248,21 +248,3 @@ def energy_consumed_in_windows_fast(window_list, out_dir):
         energy_array[j] = energy_total
         j += 1
     return energy_array
-
-
-def scheduling_metrics_in(window, OUT_DIR):
-    """Return the usual scheduling metrics for the subpart of jobs that have their submission time within the time window."""
-    [inf, sup] = window
-    data = pandas.read_csv(OUT_DIR + "/_jobs.csv")
-    data_in_window = data[(data.submission_time
-                           >= inf) & (data.submission_time <= sup)]
-
-    out = {}
-    out["makespan"] = data_in_window["finish_time"].max() - inf
-    out["#jobs"] = len(data_in_window.index)
-    out["mean_waiting_time"] = data_in_window["waiting_time"].mean()
-    out["max_waiting_time"] = data_in_window["waiting_time"].max()
-    out["mean_slowdown"] = data_in_window["stretch"].mean()
-    out["max_slowdown"] = data_in_window["stretch"].max()
-
-    return out