This comes closer, but now I don’t know how to delete the previous plot (and if I am roughly doing the right thing):
var=Observable("y1")
fig=Figure()
axentry = draw!(fig[1,1:1], data(df) *
mapping(:x1, Symbol(var[]), color=:x1) *
(visual(Scatter) + smooth(;span=0.3, degree=1)))
Colorbar(fig[:, 2])
menu = Menu(fig, options = ["y1","y2"] , default = "y1")
fig[2,1] = hgrid!(
Label(fig, "Variable", width = nothing),
menu,
tellheight = true)
on(menu.selection) do s
var[] = s
draw!(fig[1,1], data(df) *
mapping(:x1, Symbol(s), color=:x1) *
(visual(Scatter) + smooth(;span=0.3, degree=1)))
end