Example #1
0
def plot_series(series_type, jobsets, ax=None, time_scale=False):
    '''
    Plot one or several time series about provided jobsets on the given ax
    series_type can be any value present in available_series.
    '''
    # Get current axe to plot
    if ax is None:
        ax = plt.gca()

    if series_type not in available_series:
        raise AttributeError(
            "The gieven attribute should be one of the folowing:"
            "{}".format(available_series))

    if series_type == "waiting_time":
        series = {}
        for jobset_name in jobsets.keys():
            jobset = jobsets[jobset_name]
            #  create a serie
            series[jobset_name] = metrics.cumulative_waiting_time(jobset.df)
            if time_scale:
                series[jobset_name].index = pd.to_datetime(
                    jobset.df['submission_time'] + jobset.df['waiting_time'],
                    unit='s')
        # plot series
        for serie_name, serie in series.items():
            serie.plot(ax=ax, label=serie_name, drawstyle="steps")
    else:
        raise RuntimeError('The serie \"{}\" is not implemeted yet')

    # Manage legend
    ax.legend()
    ax.set_title(series_type)
    ax.grid(True)
Example #2
0
def plot_series(series_type, jobsets, ax=None, time_scale=False):
    '''
    Plot one or several time series about provided jobsets on the given ax
    series_type can be any value present in available_series.
    '''
    # Get current axe to plot
    if ax is None:
        ax = plt.gca()

    if series_type not in available_series:
        raise AttributeError(
            "The gieven attribute should be one of the folowing:"
            "{}".format(available_series))

    if series_type == "waiting_time":
        series = {}
        for jobset_name in jobsets.keys():
            jobset = jobsets[jobset_name]
            #  create a serie
            series[jobset_name] = metrics.cumulative_waiting_time(jobset.df)
            if time_scale:
                series[jobset_name].index = pd.to_datetime(
                    jobset.df['submission_time'] + jobset.df['waiting_time'],
                    unit='s')
        # plot series
        for serie_name, serie in series.items():
            serie.plot(ax=ax, label=serie_name, drawstyle="steps")
    else:
        raise RuntimeError('The serie \"{}\" is not implemeted yet')

    # Manage legend
    ax.legend(loc='upper left')
    ax.set_title(series_type)
    ax.grid(True)
Example #3
0
 def test_cumulative_waiting_time(self):
     from evalys.metrics import cumulative_waiting_time
     js_begin = evalys.JobSet.from_csv("./tests/test_frag_begin.csv")
     assert cumulative_waiting_time(
         js_begin.df).max() == 62.5 + 125.0 + 187.5
Example #4
0
 def test_cumulative_waiting_time(self):
     from evalys.metrics import cumulative_waiting_time
     js_begin = evalys.JobSet.from_csv("./tests/test_frag_begin.csv")
     assert cumulative_waiting_time(js_begin.df).max() == 62.5 + 125.0 + 187.5