Newer
Older
function plot_pdf!(ax, d::Distribution, x=[-1:.1e-4:1 ... ]; kwargs...)
y = pdf.(d, x)
return lines!(ax, x, y; kwargs...)
end
function plot_pdf!(ax, f::Function, x=[-1:.1e-4:1 ... ]; kwargs... )
a,b = extrema(x)
y = exp.(f.(x))
y = y ./ ( (b-a) * mean(y))
return lines!(ax, x, y; kwargs...)
end
function plot_pdf!(ax, f::MultilevelChainSampler.AbstractLogDensity, x=[-1:.1e-4:1 ...]; kwargs...)
return plot_pdf!(ax, x->logdensity(f, x), x; kwargs...)
end
function errorlines!(ax, x, m, s; clamp=-Inf, rate=false, args...)
if rate
r = asymptotic_rate(x[2:end], m[2:end])
r = round(r, sigdigits=4)
l = lines!(ax, x, m; label = L"O(n^{\alpha}), \quad \alpha = %$r", args...)
else
l = lines!(ax, x, m; args...)
end
c = l.color[]; c = RGBAf(c.r, c.g, c.b, 0.125)
s = min.(m .- clamp, s)
band!(ax, x, m-s, m+s; color=c )
end