diff --git a/simrunner/data_config.json b/simrunner/data_config.json index e4747bfa3b576d06ca039c081b79da42d0de0f78..12acd9616654775b3dbab41b465286b6ee4c8fe8 100644 --- a/simrunner/data_config.json +++ b/simrunner/data_config.json @@ -1,33 +1,68 @@ { "data_set_1":{ - "--posixDataDir": "fehler_test", - "-n": "15", - "-s": "2M", + "--posixDataDir": "protokoll", + "-n": "100", + "-s": "1M", "-i": "0.1s", "-N": "4"}, "data_set_2":{ "--posixDataDir": "protokoll", - "-q": "error test parameter", - "-n": "20", - "-s": "1M", + "-n": "100", + "-s": "2M", "-i": "0.1s", "-N": "4"}, "data_set_3":{ "--posixDataDir": "protokoll", - "-n": "5", + "-n": "100", "-s": "3M", "-i": "0.1s", "-N": "4"}, "data_set_4":{ "--posixDataDir": "protokoll", - "-n": "10", + "-n": "100", "-s": "4M", "-i": "0.1s", "-N": "4"}, "data_set_5":{ "--posixDataDir": "protokoll", - "-n": "10", + "-n": "100", "-s": "5M", "-i": "0.1s", + "-N": "4"}, + "data_set_6":{ + "--posixDataDir": "protokoll", + "-n": "100", + "-s": "6M", + "-i": "0.1s", + "-N": "4"}, + "data_set_7":{ + "--posixDataDir": "protokoll", + "-n": "100", + "-s": "8M", + "-i": "0.1s", + "-N": "4"}, + "data_set_8":{ + "--posixDataDir": "protokoll", + "-n": "100", + "-s": "16M", + "-i": "0.1s", + "-N": "4"}, + "data_set_9":{ + "--posixDataDir": "protokoll", + "-n": "100", + "-s": "7M", + "-i": "0.1s", + "-N": "4"}, + "data_set_10":{ + "--posixDataDir": "protokoll", + "-n": "100", + "-s": "9M", + "-i": "0.1s", + "-N": "4"}, + "data_set_11":{ + "--posixDataDir": "protokoll", + "-n": "100", + "-s": "12M", + "-i": "0.1s", "-N": "4"} } \ No newline at end of file diff --git a/visualizer/visualizer/SeabornPlotter.py b/visualizer/visualizer/SeabornPlotter.py index 11fcdc55676f601ba21e99006727bb7273d7dc7f..8d445f955c9f1c8d8bcc6c91317f6afd34c39b38 100644 --- a/visualizer/visualizer/SeabornPlotter.py +++ b/visualizer/visualizer/SeabornPlotter.py @@ -5,29 +5,29 @@ from scipy.stats import iqr class SeabornPlotter: - def __init__(self, dataframe): + def __init__(self, dataframe, name): self.dataframe = dataframe + self.name = name self.current_plot = None def plot(self): df = self.dataframe x = df['size'] y = df['duration'] - x_start = df['size'].min() / 2 - y_start = 0.001 - x_end = df['size'].max() * 2 - y_end = df['duration'].max() - x_num_points = 100 - y_step = 0.001 - x_bins = np.logspace(np.log10(x_start), np.log10(x_end), num=x_num_points).tolist() - y_bins = [y_start + (y_step * i) for i in range(int((y_end - y_start) / y_step) + 1)] + title = "Procedure: {}".format(self.name) - f, ax = plt.subplots(figsize=(16, 20)) - sns.violinplot(x=x, y=y, s=5, color=".15", palette="light:b", inner="points", hue=list(self.dataframe.index.get_level_values(0))) - #sns.histplot(x=x, y=y, bins=[x_bins, y_bins], pthresh=.1, cmap="coolwarm") - #ax.set_xscale('log') - ax.set_yscale('log') + f, ax = plt.subplots(figsize=(16, 9)) + sns.violinplot(x=x, y=y, s=5, color=".15", palette="light:b", inner="points", + hue=list(self.dataframe.index.get_level_values(0))) + if self.name == "dump" or self.name == "write" or self.name == "open" or self.name == "wait": + ax.set_yscale('symlog', linthresh=0.1) + else: + ax.set_yscale('log') - plt.tight_layout() + plt.title(title) + plt.xlabel("Size of written data in ms") + plt.ylabel("Duration") + plt.savefig(title) plt.show() + diff --git a/visualizer/visualizer/main.py b/visualizer/visualizer/main.py index 22dc9c567982914ad69dbbb1ff623d7777e396ca..5afc90ac1d9de0f8464801401cbf70ee37fc081b 100644 --- a/visualizer/visualizer/main.py +++ b/visualizer/visualizer/main.py @@ -17,12 +17,15 @@ def main(): # Import Data creator = DataFrameCreator(data_path) dataframes = creator.create_dataframes() + for frame in dataframes.keys(): + if not dataframes[frame].empty: + # Setup Plotter + frame_name = frame - # Setup Plotter - plotter = SeabornPlotter(dataframes['write']) + plotter = SeabornPlotter(dataframes[frame], frame_name) - # Plotter run - plotter.plot() + # Plotter run + plotter.plot() if __name__ == "__main__":