diff --git a/visualizer/visualizer/DataFrameCreator.py b/visualizer/visualizer/DataFrameCreator.py
index 5815510c91e9c739aeda8daee44ee54321cde60e..7f343098eabe64981ebac5182d91d41eb419c6cc 100644
--- a/visualizer/visualizer/DataFrameCreator.py
+++ b/visualizer/visualizer/DataFrameCreator.py
@@ -1,5 +1,6 @@
 import os
 import pandas as pd
+import re
 
 
 class DataFrameCreator:
@@ -7,6 +8,7 @@ class DataFrameCreator:
         self.folder_path = f_path
         self.v_dfs = {}
         self.l_dfs = {}
+        self.s_dfs = {}
 
     @staticmethod
     def _merge_dataframes(dfs):
@@ -26,12 +28,29 @@ class DataFrameCreator:
             dataframe = pd.read_csv(file_path, delimiter=" ", header=0)
             return dataframe, dataframe_type, dataframe_name
 
+    @staticmethod
+    def _extract_statistics(data, filename):
+        result = {}
+        group = re.search(r"(.*):", data).group(1)
+        result["Group"] = group
+
+        values = re.findall(r"\d+\.\d+", data)
+        result["min"] = float(values[0])
+        result["mean"] = float(values[1])
+        result["10%"] = float(values[2])
+        result["med"] = float(values[3])
+        result["90%"] = float(values[4])
+        result["max"] = float(values[5])
+        result["speed"] = float(values[6])
+
+        return result
+
     def read_various_data(self, root, filename):
         dataframe, dataframe_type, dataframe_name = self._set_dataframe(root, filename)
         if dataframe_type in self.v_dfs:
             inner_dict = self.v_dfs[dataframe_type]
             if dataframe_name in inner_dict:
-                # DataFrame hinzufügen
+                # Add Dataframe
                 inner_dict[dataframe_name] = pd.concat([inner_dict[dataframe_name], dataframe],
                                                        ignore_index=True)
             else:
@@ -41,9 +60,38 @@ class DataFrameCreator:
                 dataframe_name: dataframe
             }
 
+    def read_statistic_data(self, root, filename):
+        if filename.endswith('.dat'):
+            data_list = []
+            path = os.path.join(root, filename)
+            with open(path, "r") as file:
+                lines = file.readlines()
+            for line in lines:
+                data = line.strip()
+                if data.startswith("worker") or data.startswith("posix"):
+                    data_dict = self._extract_statistics(data, filename)
+                    data_list.append(data_dict)
+
+            dataframe = pd.DataFrame(data_list)
+            dataframe_type = filename
+            dataframe_name = filename.split('.')[0]  # Verwende den Dateinamen ohne Erweiterung als DataFrame-Namen
+
+            if dataframe_type in self.s_dfs:
+                inner_dict = self.s_dfs[dataframe_type]
+                if dataframe_name in inner_dict:
+                    # Add DataFrame
+                    inner_dict[dataframe_name] = pd.concat([inner_dict[dataframe_name], dataframe],
+                                                           ignore_index=True)
+                else:
+                    inner_dict[dataframe_name] = dataframe
+            else:
+                self.s_dfs[dataframe_type] = {
+                    dataframe_name: dataframe
+                }
+
     def read_long_data(self, root, filename):
         dataframe, dataframe_type, dataframe_name = self._set_dataframe(root, filename)
-        # Berechnung der Zeitdifferenz in Sekunden ab dem ersten Wert
+        # Calculation of time difference in seconds from the first value
         if not dataframe.empty:
             dataframe['start'] = pd.to_datetime(dataframe['start'], unit='s')
             start_time = dataframe['start'].iloc[0]
@@ -52,7 +100,7 @@ class DataFrameCreator:
         if dataframe_type in self.l_dfs:
             inner_dict = self.l_dfs[dataframe_type]
             if dataframe_name in inner_dict:
-                # DataFrame hinzufügen
+                # Add Dataframe
                 inner_dict[dataframe_name] = pd.concat([inner_dict[dataframe_name], dataframe],
                                                        ignore_index=True)
             else:
@@ -66,8 +114,7 @@ class DataFrameCreator:
         for root, _, folder in os.walk(self.folder_path):
             if os.path.basename(root) == "statistics":
                 for filename in folder:
-                    print("this was statistic" + filename)
-                    continue
+                    self.read_statistic_data(root, filename)
             elif os.path.basename(root) == "Data_Set_Long":
                 for filename in folder:
                     self.read_long_data(root, filename)
@@ -77,4 +124,5 @@ class DataFrameCreator:
 
         various_dfs = self._merge_dataframes(self.v_dfs)
         long_dfs = self._merge_dataframes(self.l_dfs)
-        return various_dfs, long_dfs
+        statistics_dfs = self._merge_dataframes(self.s_dfs)
+        return various_dfs, long_dfs, statistics_dfs
diff --git a/visualizer/visualizer/SeabornPlotter.py b/visualizer/visualizer/SeabornPlotter.py
index 940c0a0ef572d2785c3ccb4cefa3801ed1cf7a94..f91b0a2f7de68765dbd3a8fef15b1a6c2d450b26 100644
--- a/visualizer/visualizer/SeabornPlotter.py
+++ b/visualizer/visualizer/SeabornPlotter.py
@@ -66,3 +66,15 @@ class SeabornPlotter:
         plt.xticks(rotation=45)
         plt.savefig(title + ".svg", format='svg')
         plt.show()
+
+    def plot_statistics(self):
+        df = self.dataframe
+        for frame in df
+            plt.figure(figsize=(10, 6))
+            sns.boxplot(data=df[['min', 'mean', '10%', 'med', '90%', 'max']], palette='pastel')
+            plt.xlabel('Statistical Measures')
+            plt.ylabel('Time (Y-Axis)')
+            plt.title('Boxplot of Statistical Measures for Each Group')
+            plt.grid(True)
+
+        plt.show()
diff --git a/visualizer/visualizer/main.py b/visualizer/visualizer/main.py
index 489cc2a5a3743d740eba543861506e523a780af8..d6622fcab236fdd15cfc6d09c76556603fc295f6 100644
--- a/visualizer/visualizer/main.py
+++ b/visualizer/visualizer/main.py
@@ -16,9 +16,13 @@ def main():
 
     # Import Data
     creator = DataFrameCreator(data_path)
-    v_dataframes, l_dataframes = creator.create()
+    v_dataframes, l_dataframes, s_dataframes = creator.create()
 
-    # Plot
+    # Plot Statistics
+    s_plotter = SeabornPlotter(s_dataframes, 'statistics')
+    s_plotter.plot_statistics()
+
+    # Plot Data
     for frame in v_dataframes.keys():
         if not v_dataframes[frame].empty:
             # Setup Plotter