From 8310dd9304b276731347918bce2ad2fd0e0f6673 Mon Sep 17 00:00:00 2001 From: ilmabura Date: Mon, 6 Oct 2025 22:49:27 -0400 Subject: [PATCH] checkpooint 3: completed scatterplot I think i am used to bottom-up problem solving. I like doing problems by first utilizing the knowledge I already have and expanding it. Top-down thinking, like we did in checkpoint 1 may sometimes make it difficult to proceed once you get stuck in a step. For bottom up, you can move onto a different part which you already know. --- scatterplot.py | 26 ++++++++++++++++++++++++++ transform.py | 4 ++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/scatterplot.py b/scatterplot.py index 50f66fb..54c1d82 100644 --- a/scatterplot.py +++ b/scatterplot.py @@ -35,9 +35,35 @@ def draw_scatterplot(data, size=5, color="black"): def draw_axes(data): "Draws the scatter plot's axes." + draw_x_axis() + x_val = get_x_values(data) + xmin, xmax = bounds(x_val) + ticks = get_tick_values(xmin, xmax) + for tick in ticks: + screen_x_pos = scale(tick, xmin, xmax, 0, constants.PLOT_WIDTH) + draw_x_tick(screen_x_pos, tick) + + draw_y_axis() + y_val= get_y_values(data) + ymin, ymax = bounds(y_val) + ticks= get_tick_values(ymin, ymax) + for tick in ticks: + screen_y_pos = scale(tick, ymin, ymax, 0, constants.PLOT_WIDTH) + draw_y_tick(screen_y_pos, tick) def draw_points(data, color, size): "Draws the scatter plot's points." + x_val = get_x_values(data) + y_val= get_y_values (data) + xmin, xmax = bounds(x_val) + ymin, ymax = bounds(y_val) + for point in data: + scaled_x = scale(point[0], xmin, xmax, 0, constants.PLOT_WIDTH) + scaled_y = scale(point[1], ymin, ymax, 0, constants.PLOT_WIDTH) + draw_point(scaled_x, scaled_y, color, size) + + + with no_delay(): data = generate_data(50, 10, 500, 5, 400, 1000) diff --git a/transform.py b/transform.py index 8021a1d..b3d1abb 100644 --- a/transform.py +++ b/transform.py @@ -40,9 +40,9 @@ def clamp(value, low, high): val= None if value > low and value < high: val= value - if value < low: + if value <= low: val = low - if value > high: + if value >= high: val= high return val