Loading xlap/analyse/jitter.py +4 −8 Original line number Diff line number Diff line Loading @@ -28,21 +28,17 @@ def jitter_causes(df, durations, export=False, file_name=None): print("Outliers:", len(outliers), ";", "Threshold[us]:", threshold) def trace_jitter(data_frame, threshold=None, export=False, file_name=None): def trace_jitter(data_frame, config=None, threshold=None, export=False, file_name=None): """ Displays (and saves) a stacked boxplot of durations. """ data_frame = data_frame[[x + "_D" for x in extract_durations(config)]] if threshold is None: threshold = get_outlier_threshold(data_frame["EndToEnd_D"].describe()) df_no_outliers = data_frame[data_frame["EndToEnd_D"] <= threshold] box(df_no_outliers, export, file_name) box(df_no_outliers, (0, threshold), export, file_name) print("{} / {} are no outliers.".format(len(df_no_outliers), len(data_frame))) fig = plt.gcf() fig.canvas.set_window_title('Jitter Analysis') plt.show() def prep(df, config): res = df[[x + "_D" for x in extract_durations(config)]] res.name = df.name return res xlap/analyse/util.py +3 −1 Original line number Diff line number Diff line Loading @@ -40,7 +40,7 @@ def extract_durations(config): return ["EndToEnd", "Sender"] + durations_send + ["Receiver"] + durations_recv def box(data_frame, export=False, file_name=None): def box(data_frame, xlim=None, export=False, file_name=None): """ Display a boxplot for the durations contained in data_frame. :param data_frame: Loading @@ -52,6 +52,8 @@ def box(data_frame, export=False, file_name=None): fig = ax.get_figure() ax.set_yticklabels(list(map(lambda x: x.get_text().replace("_D", ""), ax.get_yticklabels()))) plt.xlabel("Time [us]") if xlim is not None: plt.xlim(xlim) fig.set_size_inches(8, 4.5, forward=True) if export and file_name is not None: fig.savefig(file_name) Loading Loading
xlap/analyse/jitter.py +4 −8 Original line number Diff line number Diff line Loading @@ -28,21 +28,17 @@ def jitter_causes(df, durations, export=False, file_name=None): print("Outliers:", len(outliers), ";", "Threshold[us]:", threshold) def trace_jitter(data_frame, threshold=None, export=False, file_name=None): def trace_jitter(data_frame, config=None, threshold=None, export=False, file_name=None): """ Displays (and saves) a stacked boxplot of durations. """ data_frame = data_frame[[x + "_D" for x in extract_durations(config)]] if threshold is None: threshold = get_outlier_threshold(data_frame["EndToEnd_D"].describe()) df_no_outliers = data_frame[data_frame["EndToEnd_D"] <= threshold] box(df_no_outliers, export, file_name) box(df_no_outliers, (0, threshold), export, file_name) print("{} / {} are no outliers.".format(len(df_no_outliers), len(data_frame))) fig = plt.gcf() fig.canvas.set_window_title('Jitter Analysis') plt.show() def prep(df, config): res = df[[x + "_D" for x in extract_durations(config)]] res.name = df.name return res
xlap/analyse/util.py +3 −1 Original line number Diff line number Diff line Loading @@ -40,7 +40,7 @@ def extract_durations(config): return ["EndToEnd", "Sender"] + durations_send + ["Receiver"] + durations_recv def box(data_frame, export=False, file_name=None): def box(data_frame, xlim=None, export=False, file_name=None): """ Display a boxplot for the durations contained in data_frame. :param data_frame: Loading @@ -52,6 +52,8 @@ def box(data_frame, export=False, file_name=None): fig = ax.get_figure() ax.set_yticklabels(list(map(lambda x: x.get_text().replace("_D", ""), ax.get_yticklabels()))) plt.xlabel("Time [us]") if xlim is not None: plt.xlim(xlim) fig.set_size_inches(8, 4.5, forward=True) if export and file_name is not None: fig.savefig(file_name) Loading