diff --git a/utils.py b/utils.py index a56c1f4..fd98032 100644 --- a/utils.py +++ b/utils.py @@ -249,12 +249,17 @@ def get_exercise_graph_model(title, estimated_1rm, repetitions, weight, start_da best_fit_points = [] try: - # Calculate line of best fit using NumPy - m, b = np.polyfit(relative_positions, estimated_1rm_scaled, 1) - y_best_fit = m * relative_positions + b - best_fit_points = list(zip(y_best_fit.tolist(), relative_positions.tolist())) - except np.linalg.LinAlgError: - pass + if len(relative_positions) > 1: # Ensure there are enough points for polyfit + # Calculate line of best fit using NumPy + m, b = np.polyfit(relative_positions, estimated_1rm_scaled, 1) + y_best_fit = m * relative_positions + b + best_fit_points = list(zip(y_best_fit.tolist(), relative_positions.tolist())) + else: + raise ValueError("Not enough data points for polyfit") + except (np.linalg.LinAlgError, ValueError) as e: + # Handle cases where polyfit fails + best_fit_points = [] + m, b = 0, 0 # Prepare data for plots repetitions_data = {