drawing the scatter plot

checkpoint 3 was not bad the only thing i struggled with was making the
code for scaled x and y positions. specificlly on how to figuer out what the
range min and max were.
This commit is contained in:
tsmith37
2025-10-11 22:56:02 -04:00
parent 96b2eb823b
commit fe2e973e6d
2 changed files with 35 additions and 2 deletions

View File

@@ -36,9 +36,42 @@ def draw_scatterplot(data, size=5, color="black"):
def draw_axes(data): def draw_axes(data):
"Draws the scatter plot's axes." "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_WIDTH)
draw_y_tick(screen_y_position, tick)
def draw_points(data, color, size): def draw_points(data, color, size):
"Draws the scatter plot's points." "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)
y_r_min = min(y_values)
y_r_max = max(y_values)
for x, y in data:
scaled_x = scale(x, x1, x2, 10, 500)
scaled_y = scale(y, y1, y2, 5, 400)
draw_point(scaled_x, scaled_y, color, size)
with no_delay(): with no_delay():
data = generate_data(50, 10, 500, 5, 400, 1000) data = generate_data(50, 10, 500, 5, 400, 1000)
draw_scatterplot(data, size=5, color="blue") draw_scatterplot(data, size=5, color="blue")

View File

@@ -62,7 +62,7 @@ def scale(value, domain_min, domain_max, range_min, range_max):
def get_x_values(points): def get_x_values(points):
"Returns the first value for each point in points." "Returns the first value for each point in points."
a, b, c = points
x_points =[] x_points =[]
for x, y in (points): for x, y in (points):
x_points.append(x) x_points.append(x)
@@ -77,7 +77,7 @@ def get_x_values(points):
def get_y_values(points): def get_y_values(points):
"Returns the second value for each point in points." "Returns the second value for each point in points."
a, b, c = points
y_points =[] y_points =[]
for x, y in (points): for x, y in (points):
y_points.append(y) y_points.append(y)