scatterplot.py

This commit is contained in:
njmason2
2025-10-12 18:24:23 -04:00
parent 1c4cee2704
commit 640ff70865
3 changed files with 43 additions and 16 deletions

View File

@@ -16,6 +16,7 @@ from plotting import (
draw_y_tick,
draw_point,
)
from transform import (
maximum,
minimum,
@@ -28,19 +29,42 @@ from transform import (
)
def draw_scatterplot(data, size=5, color="black"):
"Draws a scatter plot, showing the data"
prepare_screen()
draw_axes(data)
draw_points(data, color, size)
def draw_axes(data):
"Draws the scatter plot's axes."
def draw_points(data, color, size):
"Draws the scatter plot's points."
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):
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: # the loop values must match the
# draw_point function parameters in the plotting.py file
scaled_x=scale(x, xmin, xmax, 0, constants.PLOT_WIDTH)
scaled_y=scale(y, ymin, ymax, 0, constants.PLOT_HEIGHT)
draw_point(x, y, color, size)
with no_delay():
data = generate_data(50, 10, 500, 5, 400, 1000)
draw_scatterplot(data, size=5, color="blue")
hideturtle()
done()