Round person graph models to one decimal place to reduce svg size

This commit is contained in:
Peter Stockings
2026-02-04 09:54:03 +11:00
parent 3fabde145d
commit 09d90b5a1e

View File

@@ -34,10 +34,10 @@ def get_exercise_graph_model(title, estimated_1rm, repetitions, weight, start_da
vb_height *= 75 / vb_height # Scale to 75px height vb_height *= 75 / vb_height # Scale to 75px height
# Use NumPy arrays for efficient scaling # Use NumPy arrays for efficient scaling
relative_positions = np.array([(date - min_date).days / total_span for date in start_dates]) relative_positions = np.round(np.array([(date - min_date).days / total_span for date in start_dates]), 1)
estimated_1rm_scaled = ((np.array(estimated_1rm) - min_e1rm) / e1rm_range) * vb_height estimated_1rm_scaled = np.round(((np.array(estimated_1rm) - min_e1rm) / e1rm_range) * vb_height, 1)
repetitions_scaled = ((np.array(repetitions) - min_reps) / reps_range) * vb_height repetitions_scaled = np.round(((np.array(repetitions) - min_reps) / reps_range) * vb_height, 1)
weight_scaled = ((np.array(weight) - min_weight) / weight_range) * vb_height weight_scaled = np.round(((np.array(weight) - min_weight) / weight_range) * vb_height, 1)
# Calculate slope and line of best fit # Calculate slope and line of best fit
slope_kg_per_day = e1rm_range / total_span slope_kg_per_day = e1rm_range / total_span
@@ -57,7 +57,7 @@ def get_exercise_graph_model(title, estimated_1rm, repetitions, weight, start_da
if len(np.unique(x_fit)) > degree: if len(np.unique(x_fit)) > degree:
coeffs = np.polyfit(x_fit, y_fit, degree) coeffs = np.polyfit(x_fit, y_fit, degree)
poly_fit = np.poly1d(coeffs) poly_fit = np.poly1d(coeffs)
y_best_fit = poly_fit(relative_positions) y_best_fit = np.round(poly_fit(relative_positions), 1)
best_fit_points = list(zip(y_best_fit.tolist(), relative_positions.tolist())) best_fit_points = list(zip(y_best_fit.tolist(), relative_positions.tolist()))
else: else:
best_fit_points = [] best_fit_points = []