Skip to content
Snippets Groups Projects
Commit 0af92db6 authored by Michael Reuscher's avatar Michael Reuscher
Browse files

Install Skript 1.01

parent edfc888e
No related branches found
No related tags found
2 merge requests!4Python driver and data analysis part,!2Threading fix
import os
import pandas as pd
class DataFrameCreator:
def __init__(self, f_path):
self.folder_path = f_path
def create_dataframes(self):
dfs = {}
for root, _, files in os.walk(self.folder_path):
for filename in files:
if filename.endswith('.dat'):
file_path = os.path.join(root, filename)
dataframe_name = os.path.splitext(filename)[0]
dataframe_type = dataframe_name.split('-')[1]
dataframe = pd.read_csv(file_path, delimiter=" ", header=0)
if dataframe_type in dfs:
inner_dict = dfs[dataframe_type]
if dataframe_name in inner_dict:
# DataFrame hinzufügen
inner_dict[dataframe_name] = pd.concat([inner_dict[dataframe_name], dataframe], ignore_index=True)
else:
inner_dict[dataframe_name] = dataframe
else:
dfs[dataframe_type] = {
dataframe_name: dataframe
}
merged_dfs = {}
for outer_key in dfs:
merged_dataframe = pd.concat(dfs[outer_key].values(), keys=dfs[outer_key].keys())
merged_dataframe_sorted = merged_dataframe.sort_index()
merged_dfs[outer_key] = merged_dataframe_sorted
return merged_dfs
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
class SeabornPlotter:
def __init__(self, dataframe):
self.dataframe = dataframe
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)]
f, ax = plt.subplots(figsize=(16, 20))
sns.scatterplot(x=x, y=y, s=5, color=".15", 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')
plt.tight_layout()
plt.show()
import datetime
class DataConvert:
@staticmethod
def convert_unix(timestamp):
return datetime.datetime.fromtimestamp(timestamp)
\ No newline at end of file
import os
import numpy as np
import pandas as pd
import datetime
import matplotlib
import matplotlib.pyplot as plt
import seaborn as sns
from .SeabornPlotter import SeabornPlotter
from .DataFrameCreator import DataFrameCreator
matplotlib.use('TkAgg')
# --------------Main------------
def main():
folder_path = '/home/user/C++/detectorwritesim/output'
creator = DataFrameCreator(folder_path)
dataframes = creator.create_dataframes()
plotter = SeabornPlotter(dataframes['write'])
# Plot erstellen
plotter.plot()
if __name__ == "__main__":
main()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment