If I write
using StatsPlots
density(sqrt.(rand(10000)))
density!(sqrt.(2*rand(10000)))
then I get:
The plot would be nicer if the blue line extended all the way to the maximum/minimum x values (along 0). Is there an option for this?
If I write
using StatsPlots
density(sqrt.(rand(10000)))
density!(sqrt.(2*rand(10000)))
then I get:
The plot would be nicer if the blue line extended all the way to the maximum/minimum x values (along 0). Is there an option for this?
If I understand you correctly you want density
to pad its estimate with zeros up to some maximum value which is determined by a different call to density
? I don’t think there’s an option for this and I’m not even sure how that would work in practice (what if you plot a third density? would the first two plots have to be extended accordingly?) so you need to do it manually by adding something like
julia> plot!(1.1:0.01:1.6, zeros(length(1.1:0.01:1.6)), color = 1, label = "")
Instead of inventing new data, you could force the lines to land on the x-axis at y=0.
In this case, just using the argument widen=false
would do the trick.
Not sure about the widen=false
, I tried it but didn’t really seem to work (I increased lw
to make things clearer)
using StatsPlots
density(sqrt.(rand(10000)),widen=false,lw=4)
density!(sqrt.(2*rand(10000)),lw=4)
(I tried putting the widen=false
in various places, and =true
, in case I misunderstood something, but with no success)
@nilshg I don’t need it to predict the length of the padding according to the previous call, I agree that this would be weird. But an option like
using StatsPlots
density(sqrt.(rand(10000)),extend=(0.,1.5)
density!(sqrt.(2*rand(10000)))
which then continues the line to the given interval (even if just 0) is what I would be looking for (I’d could then manually set it to whatever I would require). If there’s nothing like that though, trying to stitch things together like you suggest, with separate lines, seem like it might produce an acceptable result.