For the sake of completeness, here is the fit and the comparison of the fit to the data using GaussianMixtures.jl
:
using GaussianMixtures
using PGFPlotsX
using StatsBase
using Random
Random.seed!(23);
d₁ = randn(20000, 1) .- 5
d₂ = randn(100000, 1) .+ 23
d₊ = vcat(d₁, d₂);
n = length(d₊)
gmm = GMM(2, d₊)
n_bins = 100
h = fit(Histogram, d₊[:,1], nbins=n_bins)
h₀ = fit(Histogram, rand(gmm, length(d₊))[:], nbins=n_bins)
fig = @pgf Axis(
Plot({"ybar interval"},
Coordinates(h.edges[1][2:end], h.weights)
),
Plot({color="red"},
Coordinates(h₀.edges[1][2:end].+(h₀.edges[1].step.hi/2), h₀.weights)
)
)