Plotting MCMC results from VFTS 243

In this example we produce corner plots from the results of VFTS 243 that were stored from the previous example. We start by loading up

using CairoMakie
using SideKicks
using CornerPlotting
using Distributions

results, observations, priors, metadata = SideKicks.ExtractResults("vfts243_results.hdf5");

As an initial check, we can plot the quantities that were used as observations. A basic consistency check is to verify these are consistent with the MCMC samples.

names = [:m1_f, :P_f, :e_f, :K1]
scaling = Dict( :m1_f => m_sun,
                :P_f  => day,
                :e_f  => 1,
                :K1   => km_per_s
               )
labels  = Dict( :m1_f => L"M_{1f}\;[M_{\odot}]",
                :P_f  => L"P_f\;[\mathrm{days}]",
                :e_f  => L"e_f",
                :K1   => L"K_1  \;[\mathrm{km s}^{-1}]",
               )

set_theme!(CornerPlotting.default_theme())
cp = CornerPlotting.CornerPlot(results, names, scaling=scaling, labels=labels, nbins=10, nbins_contour=10)

CornerPlotting.plot_extra_1D_distribution(cp, :m1_f, Normal(25.0,2.3))
CornerPlotting.plot_extra_1D_distribution(cp, :e_f,  Normal(0.017,0.012))
CornerPlotting.plot_extra_1D_distribution(cp, :K1,   Normal(81.4, 1.3))
CornerPlotting.plot_extra_1D_distribution(cp, :P_f,  Normal(10.4031, 0.01))

save("vfts243_observables.png", cp.fig)

cp.fig
Example block output

And, after verifying the samples do correspond to our observational constraints, we can analyze the consequences for explosion itself.

names = [:m2_i, :dm2, :P_i, :vkick, :vsys]
scaling = Dict( :m2_i  => m_sun,
                :dm2   => m_sun,
                :P_i   => day,
                :vkick => km_per_s,
                :vsys  => km_per_s,
               )
labels = Dict( :m2_i => L"M_{2f}\;[M_{\odot}]",
               :dm2   =>  L"ΔM_2  \;[M_{\odot}]",
               :P_i   =>  L"P_i \;[\mathrm{days}]",
               :vkick =>  L"v_{kick}  \;[\mathrm{km s}^{-1}]",
               :vsys  =>  L"v_{\mathrm{sys}} \;[\mathrm{km s}^{-1}]",
              )


set_theme!(CornerPlotting.default_theme())
cp = CornerPlotting.CornerPlot(results, names, scaling=scaling, labels=labels, nbins=10, nbins_contour=10)

save("vfts243_derived.png", cp.fig)

cp.fig
Example block output

As you might see, the results are not very flattering, but this is a consequence of the very small number of samples used.


This page was generated using Literate.jl.