diff --git a/scatterplot.py b/scatterplot.py index 50f66fb..4da85ae 100644 --- a/scatterplot.py +++ b/scatterplot.py @@ -26,21 +26,61 @@ from transform import ( get_x_values, get_y_values, ) +import random + def draw_scatterplot(data, size=5, color="black"): - "Draws a scatter plot, showing the data" + # this 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." + #this draws the scatter plot's axes + + # X-Axis + 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: + # this scales tick position to screen coordinates + screen_x = scale(tick, xmin, xmax, 0, constants.PLOT_WIDTH) + draw_x_tick(screen_x, tick) + + # Y-Axis + 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: + # this scales tick position to screen coordinates + screen_y = scale(tick, ymin, ymax, 0, constants.PLOT_HEIGHT) + draw_y_tick(screen_y, tick) + def draw_points(data, color, size): - "Draws the scatter plot's points." + #this Draws the scatter plot's points + x_values = get_x_values(data) + y_values = get_y_values(data) + xmin, xmax = bounds(x_values) + ymin, ymax = bounds(y_values) + + for x, y in data: + screen_x = scale(x, xmin, xmax, 0, constants.PLOT_WIDTH) + screen_y = scale(y, ymin, ymax, 0, constants.PLOT_HEIGHT) + draw_point(screen_x, screen_y, color, size) + + +# MAIN PROGRAM (runs the plot) with no_delay(): - data = generate_data(50, 10, 500, 5, 400, 1000) + # Generate random test data + data = [(random.randint(10, 500), random.randint(5, 400)) for _ in range(50)] draw_scatterplot(data, size=5, color="blue") hideturtle() + done()