I am trying to create a python script that will allow me use turtle to plot a function like y = 0.5x + 3. How can this be done? My current approach is:
import turtle
ivy = turtle.Turtle()
def plotter(x):
    y = (0.5 * x) + 3
    ivy.goto(0, y)
plotter(x=20)
                You could draw some axes and then plot y over a range of x coordinates:
from turtle import Turtle, Screen
WIDTH, HEIGHT = 20, 15  # coordinate system size
def plotter(turtle, x_range):
    turtle.penup()
    for x in x_range:
        y = x / 2 + 3
        ivy.goto(x, y)
        turtle.pendown()
def axis(turtle, distance, tick):
    position = turtle.position()
    turtle.pendown()
    for _ in range(0, distance // 2, tick):
        turtle.forward(tick)
        turtle.dot()
    turtle.setposition(position)
    for _ in range(0, distance // 2, tick):
        turtle.backward(tick)
        turtle.dot()
screen = Screen()
screen.setworldcoordinates(-WIDTH/2, -HEIGHT/2, WIDTH//2, HEIGHT/2)
ivy = Turtle(visible=False)
ivy.speed('fastest')
ivy.penup()
axis(ivy, WIDTH, 1)
ivy.penup()
ivy.home()
ivy.setheading(90)
axis(ivy, HEIGHT, 1)
plotter(ivy, range(-WIDTH//2, WIDTH//2))
screen.exitonclick()

Or, you could switch to matplotlib (and numpy) and forget turtle:
import numpy as np
import matplotlib.pyplot as plt
def f(x):
    return x / 2 + 3
t = np.arange(-10, 10, 0.5)
plt.plot(t, f(t))
plt.show()

And customize to your heart's content.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With