From b61ff8b4a2fc2de3b7f1fbfa660e8cfec4745164 Mon Sep 17 00:00:00 2001 From: mbhatti4 Date: Sun, 5 Oct 2025 02:32:58 -0400 Subject: [PATCH] checkpoint 3: I am not sure If my final code ran correctly. I think it was supposed to be a scatter plot like the one you showed originally, but not sure. Everytime I ran the code after I was done, it changed the scale each time. Overall...before writing the function for drawing the points, I found the lab relatively easy to understand. I could also be mistaken and understood it all wrong though. I understand how it all worked together in the end, or ideally how it was supposed to. I think using this top-down apporach can really help in most programs that requiere you to take some information and manipulate it to print out a specefic type of result. --- scatterplot.py | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/scatterplot.py b/scatterplot.py index 50f66fb..7aa7fb9 100644 --- a/scatterplot.py +++ b/scatterplot.py @@ -34,10 +34,33 @@ def draw_scatterplot(data, size=5, color="black"): draw_points(data, color, size) def draw_axes(data): - "Draws the scatter plot's axes." + draw_x_axis() + x_values = get_x_values(data) + xmin, xmax = bounds(x_values) + ticks = get_tick_values(xmin, xmax) + for tick in ticks: + screen_x_position = scale(tick, xmin, xmax, 0, constants.PLOT_WIDTH) + draw_x_tick(screen_x_position, tick) + + draw_y_axis() + y_values = get_y_values(data) + ymin, ymax = bounds(y_values) + ticks = get_tick_values(ymin, ymax) + for tick in ticks: + screen_y_position = scale(tick, ymin, ymax, 0, constants.PLOT_HEIGHT) + draw_y_tick(screen_y_position, tick) def draw_points(data, color, size): - "Draws the scatter plot's points." + x_values = get_x_values(data) + y_values = get_y_values(data) + x1, x2 = bounds(x_values) + y1, y2 = bounds(y_values) + + for x, y in data: + scaled_x = scale(x, x1, x2, 14, 492) + scaled_y = scale(y, y1, y2, -927, 3710) + draw_point(scaled_x, scaled_y, color, size) + with no_delay(): data = generate_data(50, 10, 500, 5, 400, 1000)