Using globals to make Makie’s plots interactive is not optimal. Instead you should look into how Observables work. See here for more infos: Observables & Interaction · Makie
Here is a reworked version of your example
using GLMakie
# Parameters
m = Observable(0.0)
c = Observable(0.0)
x = 0:0.01:10
y = Observable(Float64[])
f(x,m,c) = m*x+c
# Create a figure with an axis
fig = Figure(resolution = (800, 600))
ax = Axis(fig[1,1])
# Create a slider for m
m_slider = Slider(fig[2, 1], value = m[], range = 0.0:0.5:10.0)
# Create a slider for c
c_slider = Slider(fig[3, 1], value = c[], range = 0.0:1.0:10.0)
y = lift(m_slider.value, c_slider.value) do m, c
# lift is similar to on (or onany), only that its return value will be wrapped into an Observable
return f.(x,m,c)
end
on(y) do _
# whenever y changes we update the axis limits
reset_limits!(ax)
end
lines!(ax, x, y)
# Display the figure
display(fig)