Dashboard
This commit is contained in:
@@ -571,6 +571,61 @@ plt.show()
|
||||
|
||||
|
||||
# %% Time Plot
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
import pandas as pd
|
||||
from scipy import stats
|
||||
|
||||
# Load the TSV file
|
||||
file_path = '/home/shahin/Lab/Doktorarbeit/Barcelona/Data/Join_edssandsub.tsv'
|
||||
df = pd.read_csv(file_path, sep='\t')
|
||||
|
||||
# Extract the inference_time_sec column
|
||||
inference_times = df['inference_time_sec'].dropna() # Remove NaN values
|
||||
|
||||
# Calculate statistics
|
||||
mean_time = inference_times.mean()
|
||||
std_time = inference_times.std()
|
||||
median_time = np.median(inference_times)
|
||||
|
||||
# Create the histogram
|
||||
fig, ax = plt.subplots(figsize=(10, 6))
|
||||
|
||||
# Create histogram with bins of 1 second width
|
||||
min_time = int(inference_times.min())
|
||||
max_time = int(inference_times.max()) + 1
|
||||
bins = np.arange(min_time, max_time + 1, 1) # Bins of 1 second width
|
||||
|
||||
# Create histogram with counts (not probability density)
|
||||
n, bins, patches = ax.hist(inference_times, bins=bins, color='lightblue', alpha=0.7, edgecolor='black', linewidth=0.5)
|
||||
|
||||
# Generate Gaussian curve for fit
|
||||
x = np.linspace(inference_times.min(), inference_times.max(), 100)
|
||||
# Scale Gaussian to match histogram counts
|
||||
gaussian_counts = stats.norm.pdf(x, mean_time, std_time) * len(inference_times) * (bins[1] - bins[0])
|
||||
|
||||
# Plot Gaussian fit
|
||||
ax.plot(x, gaussian_counts, color='red', linewidth=2, label=f'Gaussian Fit (μ={mean_time:.1f}s, σ={std_time:.1f}s)')
|
||||
|
||||
# Add vertical lines for mean and median
|
||||
ax.axvline(mean_time, color='blue', linestyle='--', linewidth=2, label=f'Mean = {mean_time:.1f}s')
|
||||
ax.axvline(median_time, color='green', linestyle='--', linewidth=2, label=f'Median = {median_time:.1f}s')
|
||||
|
||||
# Add standard deviation as vertical lines
|
||||
ax.axvline(mean_time + std_time, color='saddlebrown', linestyle=':', linewidth=1, alpha=0.7, label=f'+1σ = {mean_time + std_time:.1f}s')
|
||||
ax.axvline(mean_time - std_time, color='saddlebrown', linestyle=':', linewidth=1, alpha=0.7, label=f'-1σ = {mean_time - std_time:.1f}s')
|
||||
|
||||
ax.set_xlabel('Inference Time (seconds)')
|
||||
ax.set_ylabel('Frequency')
|
||||
ax.set_title('Inference Time Distribution with Gaussian Fit')
|
||||
ax.legend()
|
||||
ax.grid(True, alpha=0.3)
|
||||
|
||||
plt.tight_layout()
|
||||
plt.show()
|
||||
|
||||
##
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user