Skip to content

Commit

Permalink
Merge pull request #578 from SciML/ploat
Browse files Browse the repository at this point in the history
Implement plotat for solution plot recipe
  • Loading branch information
ChrisRackauckas authored Dec 31, 2023
2 parents 5340bea + f8b9af0 commit 4dbad7b
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
10 changes: 6 additions & 4 deletions src/solutions/solution_interface.jl
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ DEFAULT_PLOT_FUNC(x, y, z) = (x, y, z) # For v0.5.2 bug
(sol.prob isa AbstractDiscreteProblem ?
max(1000, 100 * length(sol)) :
max(1000, 10 * length(sol))) :
1000 * sol.tslocation),
1000 * sol.tslocation, plotat = nothing),
tspan = nothing,
vars = nothing, idxs = nothing)
if vars !== nothing
Expand All @@ -190,7 +190,7 @@ DEFAULT_PLOT_FUNC(x, y, z) = (x, y, z) # For v0.5.2 bug

tscale = get(plotattributes, :xscale, :identity)
plot_vecs, labels = diffeq_to_arrays(sol, plot_analytic, denseplot,
plotdensity, tspan, vars, tscale)
plotdensity, tspan, vars, tscale, plotat)

tdir = sign(sol.t[end] - sol.t[1])
xflip --> tdir < 0
Expand Down Expand Up @@ -267,7 +267,7 @@ DEFAULT_PLOT_FUNC(x, y, z) = (x, y, z) # For v0.5.2 bug
end

function diffeq_to_arrays(sol, plot_analytic, denseplot, plotdensity, tspan,
vars, tscale)
vars, tscale, plotat)
if tspan === nothing
if sol.tslocation == 0
end_idx = length(sol)
Expand All @@ -287,7 +287,9 @@ function diffeq_to_arrays(sol, plot_analytic, denseplot, plotdensity, tspan,
(start, stop, n) -> range(start; stop = stop, length = n)
end

if denseplot
if plotat !== nothing
plott = plotat
elseif denseplot
# Generate the points from the plot from dense function
if tspan === nothing && !(sol isa AbstractAnalyticalSolution)
plott = collect(densetspacer(sol.t[start_idx], sol.t[end_idx], plotdensity))
Expand Down
3 changes: 2 additions & 1 deletion test/solution_interface.jl
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ end
10, # plotdensity
ode.tspan,
int_vars,
:identity) # tscale
:identity,
nothing) # tscale
@test plot_vecs[2][:, 2] @. exp(-plot_vecs[1][:, 2])
end

Expand Down

0 comments on commit 4dbad7b

Please sign in to comment.