diff --git a/src/agents/convenience.jl b/src/agents/convenience.jl index ae99bb8..e08dd98 100644 --- a/src/agents/convenience.jl +++ b/src/agents/convenience.jl @@ -39,17 +39,17 @@ function abmexploration(model; fig, ax, (p, abmplot_object) = abmplot(model; _add_interaction = false, figure = (resolution = (1600, 800),), kwargs...) - stepclick = add_interaction!(fig, ax, abmplot_object) + stepclick, resetclick = add_interaction!(fig, ax, abmplot_object) adata, mdata = p.adata, p.mdata !isnothing(adata) && @assert eltype(adata)<:Tuple "Only aggregated agent data are allowed." !isnothing(alabels) && @assert length(alabels) == length(adata) !isnothing(mlabels) && @assert length(mlabels) == length(mdata) - init_abm_data_plots!(fig, p, adata, mdata, alabels, mlabels, plotkwargs, stepclick) + init_abm_data_plots!(fig, p, adata, mdata, alabels, mlabels, plotkwargs, stepclick, resetclick) return fig, p end -function init_abm_data_plots!(fig, p, adata, mdata, alabels, mlabels, plotkwargs, stepclick) +function init_abm_data_plots!(fig, p, adata, mdata, alabels, mlabels, plotkwargs, stepclick, resetclick) La = isnothing(adata) ? 0 : size(p.adf[])[2]-1 Lm = isnothing(mdata) ? 0 : size(p.mdf[])[2]-1 La + Lm == 0 && return nothing # failsafe; don't add plots if dataframes are empty @@ -98,6 +98,11 @@ function init_abm_data_plots!(fig, p, adata, mdata, alabels, mlabels, plotkwargs ylims!(ax, Makie.MakieLayout.yautolimits(ax)) end end + on(resetclick) do clicks + for ax in axs + vlines!(ax, [p.s.val], color = "#c41818") + end + end return nothing end diff --git a/src/agents/interaction.jl b/src/agents/interaction.jl index ab01303..068045a 100644 --- a/src/agents/interaction.jl +++ b/src/agents/interaction.jl @@ -14,7 +14,7 @@ function add_interaction!(fig, ax, abmplot) add_param_sliders!(fig, abmplot.abmobs[].model, abmplot.params[], resetclick) end - return stepclick + return stepclick, resetclick end "Initialize standard model control buttons."