From 64d870d2800a573f7653fde41c88bc11fe847bab Mon Sep 17 00:00:00 2001 From: Cory Dean Chung Date: Sat, 12 Aug 2023 18:49:49 -0400 Subject: [PATCH] Checkpoint 3: I completed scatterplot.py I think it went well. I think I understood how everything fit together. As I was working, I was thinking that I could really do this assignment without looking at plotting.py and ticks.py because of how the steps were broken down, and I'd probably still get an understanding of using functions to break down problems. In some ways, I appreciated having plotting.py and ticks.py made for me, because it kept the focus on breaking down problems as opposed to focusing on writing all the minutia (like flyto) from scratch. of course, I did look through them! I wasn't thinking about other programs I could write--I suppose I'm just focused on the programs I have to write at the moment, to be honest. I think once I'm caught up with assignments and have time to plan new curricular materials, I'll be able to keep the idea of this lab in mind. Given my background as a math teacher, I imagine I'd want to do other data visualization tasks. --- scatterplot.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/scatterplot.py b/scatterplot.py index 50f66fb..651b49f 100644 --- a/scatterplot.py +++ b/scatterplot.py @@ -35,9 +35,32 @@ 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) + 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) + xmin, xmax = bounds(x_values) + y_values = get_y_values(data) + ymin, ymax = bounds(y_values) + for x,y in data: + 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)