From 0edc1a0402f9a454249e2ef619aecd2e8cb2cf1f Mon Sep 17 00:00:00 2001
From: Michael Reuscher <michael.reuscher@desy.de>
Date: Thu, 13 Jul 2023 16:34:32 +0200
Subject: [PATCH] new plot savepoint

---
 simrunner/data_config.json              | 53 ++++++++++++++++++++-----
 visualizer/visualizer/SeabornPlotter.py | 30 +++++++-------
 visualizer/visualizer/main.py           | 11 +++--
 3 files changed, 66 insertions(+), 28 deletions(-)

diff --git a/simrunner/data_config.json b/simrunner/data_config.json
index e4747bf..12acd96 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 11fcdc5..8d445f9 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 22dc9c5..5afc90a 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__":
-- 
GitLab