From 49700bc21273ee1baa58057a5c3147a6e79157fb Mon Sep 17 00:00:00 2001 From: kated Date: Tue, 24 Mar 2026 11:09:52 -0400 Subject: [PATCH] Wrote functions draw_axes and draw_points in scatterplot.py to draw a scatterplot with the x and y axes and the given points (blue dots). --- scatterplot.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/scatterplot.py b/scatterplot.py index 50f66fb..26ea43b 100644 --- a/scatterplot.py +++ b/scatterplot.py @@ -35,9 +35,41 @@ def draw_scatterplot(data, size=5, color="black"): def draw_axes(data): "Draws the scatter plot's axes." + draw_x_axis() + x_values = get_x_values(data) + xmin, xmax = bounds(x_values) + x_ticks = get_tick_values(xmin, xmax) + for tick in x_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) + y_ticks = get_tick_values(ymin, ymax) + for tick in y_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) + xmin, xmax = bounds(x_values) + y_values = get_y_values(data) + ymin, ymax = bounds(y_values) + for point in data: + "this will return a list with just one x and y value" + "we are looking for one value of x and y as an integer." + "look at how we wrote the get_x_values function, how did we extract the x or y value from the point?" + x, y = point + "So close! I have the same trouble with the domain and range." + "domain is not x and range y as we normally think of it." + "domain is the input values for this scale - the min and max x or y values" + "range is the output values for the scatterplot - the min and max that can be displayed on our plot" + "Look at your constants for the size of your plot. The range min for x values would be 0 and max would be what value in the constants file?" + scaled_x = scale(x, xmin, xmax, 0, constants.PLOT_WIDTH) + scaled_y = scale(y, ymin, ymax, 0, constants.PLOT_HEIGHT) + draw_point(scaled_x, scaled_y, color, size) with no_delay(): data = generate_data(50, 10, 500, 5, 400, 1000)